【发布时间】:2017-09-15 17:55:04
【问题描述】:
我有一个字符串类型的数据列表,试图将每个字符串的计数设为Map<String, Long>
List<String> dataList = new ArrayList();
dataList.addAll(Arrays.asList(new String[] {"a", "z", "c", "b", "a"}));
System.out.println(dataList.stream().collect(Collectors.groupingBy(w -> w, Collectors.counting())));
输出为{a=2, b=2, c=1, z=1}。我希望输出保持列表中提供的顺序。比如{a=2, z=1, c=1, b=2}。
LinkedHashMap 将保持顺序,但不确定如何使用Collectors.groupingBy() 将输出转换为LinkedHashMap。
尝试使用Java8-stream解决问题
【问题讨论】:
标签: java-8 stream java-stream