[英]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.