首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在arraylist中找到最常用的前20个单词

在arraylist中找到最常用的前20个单词,可以通过以下步骤实现:

  1. 创建一个HashMap来存储单词和其出现的次数。HashMap的键为单词,值为该单词出现的次数。
  2. 遍历arraylist中的每个单词,如果该单词已经存在于HashMap中,则将其对应的值加1;如果该单词不存在于HashMap中,则将其添加到HashMap中,并将其对应的值设为1。
  3. 创建一个ArrayList来存储出现次数最多的前20个单词。遍历HashMap中的每个键值对,将键值对按照值的大小进行排序,并将前20个键(即出现次数最多的前20个单词)添加到ArrayList中。
  4. 返回存储出现次数最多的前20个单词的ArrayList。

以下是一个示例代码:

代码语言:txt
复制
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个单词。你可以根据实际情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券