在arraylist中找到最常用的前20个单词,可以通过以下步骤实现:
以下是一个示例代码:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
// 假设arrayList已经包含了一些单词
List<String> top20Words = findTop20Words(arrayList);
System.out.println("出现次数最多的前20个单词:");
for (String word : top20Words) {
System.out.println(word);
}
}
public static List<String> findTop20Words(ArrayList<String> arrayList) {
HashMap<String, Integer> wordCountMap = new HashMap<>();
// 统计单词出现次数
for (String word : arrayList) {
if (wordCountMap.containsKey(word)) {
wordCountMap.put(word, wordCountMap.get(word) + 1);
} else {
wordCountMap.put(word, 1);
}
}
// 按照单词出现次数排序
List<Map.Entry<String, Integer>> sortedList = new ArrayList<>(wordCountMap.entrySet());
Collections.sort(sortedList, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> entry1, Map.Entry<String, Integer> entry2) {
return entry2.getValue().compareTo(entry1.getValue());
}
});
// 获取出现次数最多的前20个单词
List<String> top20Words = new ArrayList<>();
for (int i = 0; i < Math.min(20, sortedList.size()); i++) {
top20Words.add(sortedList.get(i).getKey());
}
return top20Words;
}
}
这段代码会输出arrayList中出现次数最多的前20个单词。你可以根据实际情况进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云