有一个特定的用例,但不太确定最佳方法。
所以现在的当前方法是,我要遍历对象的集合(可关闭的迭代器),然后将它们映射到哈希图中(适当地处理冲突,通过对象的date属性进行比较)。
我正在寻找一种并行的方法来加快处理速度,最初的想法是将Java 8流与parallel和forEach一起使用,并利用并发哈希映射来启用并发。这种方法的主要瓶颈似乎是并发哈希图,并且在增加并发方面没有任何改进。
我现在的想法是将 map 并行地映射为多个hashmap。然后将 reduce 简化为一个可适当处理冲突的哈希表。想知道如何使用Streams在Java中实现这种方法。我知道有内置的map和reduce操作,但是不确定收集多个hashmap的方法(执行操作并添加到集合中?)。
答案 0 :(得分:0)
尝试使用groupingBy()函数。例如
stream.collect(Collectors.groupingBy(Locale::getCountry));
生成一个地图,该地图将国家/地区作为键,将以该国家/地区作为地区的值