3 回答

TA貢獻1859條經(jīng)驗 獲得超6個贊
您可以Collections.frequency在迭代列表時使用來打印列表中每個單詞的出現(xiàn)次數(shù):
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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超4個贊
我會這樣做。首先,您收集Map<String, Long>列表中每個項目的出現(xiàn)次數(shù)。之后,您只需遍歷原始列表,從您獲得的地圖中打印該項目及其計數(shù)。
下面是一個例子:
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));
}
添加回答
舉報