簡體   English   中英

Java 8 | HashMap的並行流

[英]Java 8 | Parallel Stream for a HashMap

在java 8中,我知道他們添加了利用多核處理器的並行流,我知道你可以使用這樣的東西:

List<String> list = new ArrayList<String>();
list.parallelStream().forEach(str -> System.out.println(str));

但是我如何通過HashMap實現這樣的目標呢?

Map<String, Integer> map = new HashMap<String, Integer>();
// won't work, because the Map class doesn't have the .parallelStream()
map.parallelStream().forEach((str, num) -> System.out.println(str + ":" + num));

有誰知道怎么做這樣的事情? 謝謝

您不能直接流式傳輸Map ,但可以使用entrySet()方法傳輸其條目集。 從條目對象中提取鍵和值。

map.entrySet()
   .parallelStream()
   .forEach(entry -> System.out.println(entry.getKey() + ":" + entry.getValue()));

您可以通過調用map.entrySet()從哈希映射中獲取“入口集”,您可以在返回的入口集上調用parallelStream()。

請注意,返回的對象是一組Map.Entry。 您可以通過分別調用getKey()和getValue()來獲取條目集項中的鍵和值。 如下:

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.entrySet().parallelStream().forEach((e) -> System.out.println(e.getKey() + ":" + e.getValue()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM