3 回答
TA贡献1859条经验 获得超6个赞
您可以Collections.frequency在迭代列表时使用来打印列表中每个单词的出现次数:
public static void main(String[] args) {
List<String> list = Arrays.asList("Java", "C#", "Java", "Python");
list.forEach( s -> System.out.println(s + " " + Collections.frequency(list, s)));
}
输出:
Java 2
C# 1
Java 2
Python 1
TA贡献1805条经验 获得超9个赞
public static void main(String[] args) {
List<String> list = Arrays.asList("Java", "C#", "Java", "Python");
list.forEach( s -> System.out.println(s + " " + list.stream().filter( s::equals ).count()));
}
TA贡献1796条经验 获得超4个赞
我会这样做。首先,您收集Map<String, Long>列表中每个项目的出现次数。之后,您只需遍历原始列表,从您获得的地图中打印该项目及其计数。
下面是一个例子:
List<String> list = new ArrayList<>();
list.add("Java");
list.add("CORE");
list.add("Java");
list.add("Java");
Map<String, Long> stringLongMap = list.stream() // collectors (java 8)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
for(String item: list) { // I just printed the result, you can do whatever you want
System.out.println(item + " " + stringLongMap.get(item));
}
添加回答
举报