// 词频排序取前五
private List<String> wordFreq (List<String> words) {
List<String> result = new ArrayList<>();
Map<String, Integer> freqMap = new HashMap<>();
for (String str : words) {
if (freqMap.containsKey(str)) {
freqMap.put(str, freqMap.get(str) + 1);
} else {
freqMap.put(str, 1);
}
}
// 获取 entry 集合
List<Map.Entry<String, Integer>> list = new ArrayList<>(freqMap.entrySet());
// 创建一个 Comparator 对象,按照 value 值降序排序
Comparator<Map.Entry<String, Integer>> comparator = (o1, o2) -> o2.getValue() - o1.getValue();
// 对 entry 集合进行排序
Collections.sort(list, comparator);
// 取出前五个值
List<Map.Entry<String, Integer>> top5 = list.subList(0, Math.min(5, list.size()));
// 输出 top5 的 key 和 value
for (Map.Entry<String, Integer> entry : top5) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
result = top5.stream().map(m->m.getKey()).collect(Collectors.toList());
return result;
}
注意:本文归作者所有,未经作者允许,不得转载