我认为你只是在寻找过载,它需要另一个负载
Collector来指定对每个组执行的操作…然后
Collectors.counting()进行计数:
import java.util.*;import java.util.stream.*;class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, Long> counted = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); System.out.println(counted); }}结果:
{Hello=2, World=1}(也有可能使用
groupingByConcurrent来提高效率。如果在你的上下文中安全的话,请记住你的真实代码。)



