首页
学习
活动
专区
工具
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个单词。你可以根据实际情况进行调整和优化。

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

相关·内容

循环神经网络(三) ——词嵌入学习与余弦相似度

man是第5391个单词,则矩阵为[0 0 0 ... 0 0 1 0 0 ... 0]T,这里1就是在矩阵第5391个位置。 这样做有个缺点,即词语之间无法建立任何联系,只有自身位置关系。...词嵌入,可以理解成把每个词语嵌入到一个300维物体中,在这个维度中找到一个特定位置,放置这个词语。...或者使用现成训练过开源词嵌入模型。 2)从词嵌入中提取出所需模型数量(10万个单词),同时适当减少词语特征维度,并将词嵌入模型迁移到我们小训练集新任务上。...3)使用我们新标记数据对词嵌入模型继续进行微调。(如果训练量很小就不要更新了)。 说明:当训练集数据较小时,词嵌入作用明显,所以词嵌入在 NLP 应用很广泛。...3、超参数设置方式 前面说了可以指定目标词四个单词,也可以指定前后各四个、前面一个、附件某一个词(这个方式成为skip gram,后面会学习)等。 ?

1.4K60

NLP中关键字提取方法总结和概述

关键词提取方法可以在文档中找到相关关键词。在本文中,我总结了最常用关键字提取方法。 什么是关键词提取? 关键字提取是从文本文档中检索关键字或关键短语。...这些关键词从文本文档短语中选择出来并且表征了文档主题。在本文中,我总结了最常用自动提取关键字方法。 自动从文档中提取关键字方法是从文本文档中选择最常用和最重要单词或短语启发式方法。...关键字提取作为机器学习支持——关键字提取算法找到描述文本相关词。它们以后可以用于可视化或自动分类文本。 关键词提取方法 在本文中,我将概述一些最常用关键字提取方法。...该等式应用于文档中每个术语(单词或短语)。方程蓝色部分是词频(TF),橙色部分是逆文档频率(IDF)。 TF-IDF 想法是文档中出现频率更高词不一定是相关。...4、得分最高单词选择——单词(顶点)从得分最高单词到最低得分单词排序。最后,算法选择单词 1/3。

2K20
  • Linux中Grep命令使用实例

    在本教程中,您将学习如何在Linux中使用非常重要grep命令。我们将讨论为什么此命令至关重要,以及如何在命令行中将其用于日常任务中。让我们深入了解一些解释和示例。 目录 为什么我们使用grep?...您在上面的屏幕截图中所见,使用grep命令可以通过快速将搜索到单词与ls命令产生其余不必要输出隔离开来,从而节省了我们时间。...在现代Linux系统上,您可以在基本grep命令中找到这些开关,但是常见是发行版也支持其他命令。...本教程第一个示例所示,使用grep搜索ls命令输出时,使用grep可以很方便。...简单方法是仅搜索制表符本身,您可以通过在键盘上按ctrl + v,然后按Tab来产生该字符。

    62.7K55

    Java Stream 操作这么多,其实只有两大类,看完这篇就清晰了

    Stream API 中常用操作学习和理解,下面会专门再有一篇文章介绍在项目开发中那些高频使用,利用 Stream 处理对象集合使用示例。...链上一个处理器处理流中元素,返回新元素会作为参数传给链中下一个处理器处理。当然,处理器可以返回相同元素或新元素,具体取决于处理器目的和用途。...count() 方法调用后,流处理将开始迭代 Stream 中元素,处理过程中字符串元素在 flatMap() 操作中被拆分为单词、合并成一个由单词组成 Stream,然后在 count() 中进行计数...所以最终打印出结果是 count = 14。 findAny findAny() 方法可以从 Stream 中找到单个元素。找到元素可以来自 Stream 中任何位置。...Optional 类对象,所以在获取值别忘了使用 ifPresent() 进行检查。

    26110

    单词接龙

    问题描述: 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 最短转换序列。...转换后得到单词必须是字典中单词。 说明: 如果不存在这样转换序列,返回一个空列表。 所有单词具有相同长度。 所有单词只由小写字母组成。 字典中不存在重复单词。...解决方案 找beginWord 到 endWord 最短转换序列问题就相当于找图上两点最短路径问题。 该问题简单解法就是使用dfs把所有的可行路线都找出来,然后再选择其中最短数条路线。...先使用bfs搜索最短路径时存储最短路径中每个节点一个结点结构。然后从endWord到beginWord该结构进行dfs,列举出所有最短路径。...String> wordSet = new HashSet(wordList); Map> pre = new HashMap();// 存储其一个结点

    64210

    金秋十月,读阿里JAVA开发手册有感而发

    ,使用尽量完整单词 组合来表达其意 正例:在 JDK 中,表达原子更新类名为:AtomicReferenceFieldUpdater。...如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则 1) 左大括号不换行。 2) 左大括号后换行。 3) 右大括号换行。...对于这一点,我们平时可以积累,避开以下一些雷区外,有时间可以看一些常用框架,中间件源码,rocketMq,sring,jdk源码等,学习里面一些写法,以及避开可能坑。...cast to java.util.ArrayList 理由:subList 返回ArrayList 内部类 SubList,并不是 ArrayList 而是 ArrayList 一个视图,...所以这些点需要我们积累以及看一下常用源码,线程池,AQS等等。 推荐指数:三星。

    42730

    Java Stream 解析和使用技巧

    Stream 类型 Stream 有分普通流和数值流,之间没有继承关系,普通流用一个泛型表示流中数据结构类型, Stream 数值流主要是避免重复装箱拆箱,统一用原始数值类型(无法应用泛型指定类型...区分中间操作和结束操作简单方法,就是看方法返回值,返回值为stream大都是中间操作,否则是结束操作。...而Optional是(一个)值容器,可以避免 null 值问题,下面会提到。 需求:从一组单词中找出最长单词。这里“大”含义就是“长”。...Collectors工具类可通过静态方法生成各种常用 Collector。...情况 1:使用toMap()生成收集器,这种情况是直接,前面例子中已提到,这是和Collectors.toCollection()并列方法。

    52120

    Java面试题:百度200页都在这里了

    这里汇总整理了网络上Java面试题, 百度搜索“Java面试题”200页。...接口有什么优点 泛型 泛型存在是用来解决什么问题 泛型常用特点 List能否转为List 工具类 日历 Calendar Class用途 如何在Java中获取日历类实例 解释一些日历类中重要方法...怎么获取一个文件中单词出现最高频率 描述一下你最常用编程风格 如果有机会重新设计你们产品,你会怎么做 如何搭建一个高可用系统 如何启动时不需输入用户名与密码 如何在基于JavaWeb项目中实现文件上传和下载...,286 拆分成2、8、6,1到11拆分后数字之和 => 1 + … + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它因子之和,这个数就称为 “完数 “。...但是要保证汉字不被截半个,“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉半个” 给定 2 个包含单词列表(每行一个)文件,编程列出交集

    1K20

    聊聊自然语言处理NLP

    NLP工具实现一般是基于机器学习与深度学习、其它算法(Lucene Core);基于两者实现是比较流行且持续在探索演进。...NLP任务概述 NLP需要一组任务组合,如下列举所示: 分词 文本可以分解为许多不同类型元素,单词、句子和段落(称为词或词项),并可选地对这些词执行附加处理;这种额外处理可以包括词干提取、词元化...常用框架及算法: n-gram 词嵌入 Glove word2Vec 降维 主成分分析 t-SNE 命名实体识别 识别人和事物过程称为命名实体识别(NER)。...实体(诸如人物和地点等)与具有名称类别相关联,而这些名称识别了它们是什么。 NER过程涉及两个任务: 实体检测 实体分类 检测是指在文本中找到实体位置。...对句子进行适当标注可以提高后续处理任务质量,可用于许多后续任务,问题分析、文本情感分析等。 分类 分类涉及为文本或文档中找到信息分配标签。当过程发生时,这些标签可能已知,也可能未知。

    28130

    Akka 指南 之「集群感知路由器」

    当一些文本被发送到服务时,它将其拆分为单词,并将任务分配给一个单独工作进程(路由器一个路由),以计算每个单词字符数。...简单运行路由器示例方法是下载「Akka Cluster Sample with Java」,它包含有关如何使用路由组运行路由器示例说明。...此示例源代码也可以在「Akka Samples Repository」中找到。...带有远程部署路由池路由器示例 让我们看看如何在创建和部署workers单个主节点(master node)上使用集群感知路由器。为了跟踪单个主节点,我们使用集群工具模块中集群单例。...此示例源代码也可以在「Akka Samples Repository」中找到。 ---- 英文原文链接:Cluster Aware Routers.

    98320

    通往大神之路,Java面试题200页。

    接口有什么优点 泛型 泛型存在是用来解决什么问题 泛型常用特点 List能否转为List 工具类 日历 Calendar Class用途 如何在Java中获取日历类实例...聊了下曾经参与设计服务器架构 请思考一个方案,实现分布式环境下 countDownLatch 请思考一个方案,设计一个可以控制缓存总体大小自动适应本地缓存 在你职业生涯中,算得上困难技术挑战是什么...怎么获取一个文件中单词出现最高频率 描述一下你最常用编程风格 如果有机会重新设计你们产品,你会怎么做 如何搭建一个高可用系统 如何启动时不需输入用户名与密码 如何在基于JavaWeb项目中实现文件上传和下载...,286 拆分成2、8、6,1到11拆分后数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它因子之和,这个数就称为 “完数 “。...但是要保证汉字不被截半个,“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉半个” 给定 2 个包含单词列表(每行一个)文件,编程列出交集

    1.7K60

    用spaCy自然语言处理复盘复联无限战争(下)

    在昨天文章中,为了我命题用spaCy自然语言处理复盘复联3中我们分析了电影中排名动词、名词、副词和形容词以及由特定角色说出动词和名词。今天我们继续聊聊排名30实体。...这些是出现次数排名30实体。 ? “MATEFAYA HU”(必胜)是瓦坎达贾巴里部落战士战斗口号。 首先,考虑到整部电影有关于灭霸,所以他出现次数多这一点也不奇怪。...紧随其后是他女儿卡魔拉,她也是影片中核心人物之一。然后在第三位,格鲁特(不需要解释为什么吧?),紧随其后是托尼和其他复仇者,以及一些地点,纽约,阿斯加德和瓦坎达(瓦坎达万岁)。...当我们讨论每个角色常用动词时,我们意识到大多数动词非常相似,表达了相同感觉。...从技术上讲,相似性是通过测量单词向量之间距离来计算,即单词多维表示。对于那些有兴趣进一步了解这个主题的人,我建议搜索word2vec,这是生成这些单词嵌入常用算法。下图是相似矩阵。 ?

    74930

    百度Java面试题200页都在这里了

    接口有什么优点 泛型 泛型存在是用来解决什么问题 泛型常用特点 List 能否转为List 工具类 日历 Calendar Class用途 如何在Java中获取日历类实例 解释一些日历类中重要方法...聊了下曾经参与设计服务器架构 请思考一个方案,实现分布式环境下 countDownLatch 请思考一个方案,设计一个可以控制缓存总体大小自动适应本地缓存 在你职业生涯中,算得上困难技术挑战是什么...怎么获取一个文件中单词出现最高频率 描述一下你最常用编程风格 如果有机会重新设计你们产品,你会怎么做 如何搭建一个高可用系统 如何启动时不需输入用户名与密码 如何在基于JavaWeb项目中实现文件上传和下载...,286 拆分成2、8、6,1到11拆分后数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它因子之和,这个数就称为 “完数 “。...但是要保证汉字不被截半个,“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉半个” 给定 2 个包含单词列表(每行一个)文件,编程列出交集

    1.3K20

    Java 面试题:百度200页都在这里了

    接口有什么优点 泛型 泛型存在是用来解决什么问题 泛型常用特点 List能否转为List 工具类 日历 Calendar Class用途 如何在Java中获取日历类实例 解释一些日历类中重要方法...聊了下曾经参与设计服务器架构 请思考一个方案,实现分布式环境下 countDownLatch 请思考一个方案,设计一个可以控制缓存总体大小自动适应本地缓存 在你职业生涯中,算得上困难技术挑战是什么...说出数据连接池工作机制是什么 怎么获取一个文件中单词出现最高频率 描述一下你最常用编程风格 如果有机会重新设计你们产品,你会怎么做 如何搭建一个高可用系统 如何启动时不需输入用户名与密码 如何在基于...,286 拆分成2、8、6,1到11拆分后数字之和 => 1 + … + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它因子之和,这个数就称为 “完数 “。...但是要保证汉字不被截半个,“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉半个” 给定 2 个包含单词列表(每行一个)文件,编程列出交集

    1.5K60

    【方向盘】使用IDEA60+个快捷键分享给你,权为了提效(操作系统、终端篇)

    ✌ 通用快捷键 command是mac里最重要组合键,以简写cmd代替。 这部分快捷键具有普适性:几乎在每个App里都有同样行为。所以是简单、最常用,当然也是最重要。...,为何在CSDN编辑器里写文章(同样是编辑文本呀),怎么不好使呢?...但在某些没有方向键键盘里(HHKC),这对组合键就非常有用喽。...✌ 删除字符 快捷键 功能说明 control + h 删除光标1个字符(效果同直接按delete) control + d 删除光标后1个字符。...注:无任何字符时效果同exit control + k 删除光标后所有字符 control + w 删除光标一个单词 control + u 删除所有字符 control + h和control

    1.6K10

    C#中字符串, String类和StringBuilder类

    下面是一些文字串实例 : “铁拳无敌俞大猷” "故园亲侣相问, 愧我边尘尚未收. " “2019-05-08” “mmcmillan@pulaskitech. edu” 字符串可以由来自Unicode...在下面这行单独字符串中用到了这两种转义字符 : string name = “第一行文字\n第二行文字\t增加了缩进文字”; 2.2、常用String类方法 虽然对字符串可以执行许多操作, 不过有几种操作是最常用...C#中字符串中第一个字符在位置0 上, 第二个字符则是在位置1 上, 其他则以此类推. 如果无法在字符串中找到某个字符, 就返回-1。...4、字符串比较方法 在C#中有几种比较String对象方法. 直接就是使用等号来比较字符串是否相等....此程序逗号索引+1位置插入了其他字符串。 Insert方法之后下一个合理方法就是Remove 方法了. 这种方法需要两个整数参数: 开始索引和要移除字符数量.

    1.8K50

    使用实体嵌入结构化数据进行深度学习

    嵌入(embedding)想法来自于NLP(word2vec) 在这篇文章中,我们将讨论机器学习中两个问题:第一个问题是关于深度学习如何在图像和文本上表现良好,并且我们如何在表格数据中使用它。...让我们来看看它是如何在短句中奏效: ‘Deep learning is deep’ 我们可以用一个向量来表示每个单词,所以“deep”这个词就变成了像是[0.20, 0.82, 0.45, 0.67]...实体嵌入指的是在分类变量上使用这一原则,即一个分类变量每一个类别都由一个向量表示。让我们快速回顾一下在机器学习中处理分类变量两种常用方法。...独热编码:创建二进制子特性,word_deep, word_learning, word_is。这些是属于该数据点类别为1,其他则为0。...流行方法是t-SNE,它是一种用于维数减少技术,可以很好地利用高维性来可视化数据集。让我们用两个快速可视化嵌入例子来结束这篇文章。以下是家得宝(美国家居连锁店)产品及其所属类别的可视化嵌入。

    2K70

    【手把手教你做项目】自然语言处理:单词抽取统计

    中等开发程序员都可以实现,其中包括数据清洗,停用词处理,分词,词频统计,排序等常用方法。...此过程其实就是数据清洗过程)最后把所有单词集中汇总,再去除:a/an/of/on/frist等停用词(中文文本处理也需要对停用词处理,诸如:,地,是等)。...遍历list列表时候,通过获取实体词频属性控制选取词汇表尺寸。 5 最后一步,中英文翻译。 将批量单词通过google翻译,可以获取常用意思,对于发音,词义,词性等没有处理。...5 自然语言常用方法小结(JAVA实现,C#类似): 1 实体基本使用 ? View Code 2 批量读取目录下文件 ?...>(shlMap.entrySet()); System.out.println("-----> 排序顺序"); for

    1.3K50

    【手把手教你做项目】自然语言处理:单词抽取统计

    中等开发程序员都可以实现,其中包括数据清洗,停用词处理,分词,词频统计,排序等常用方法。...此过程其实就是数据清洗过程)最后把所有单词集中汇总,再去除:a/an/of/on/frist等停用词(中文文本处理也需要对停用词处理,诸如:,地,是等)。...遍历list列表时候,通过获取实体词频属性控制选取词汇表尺寸。 5 最后一步,中英文翻译。 将批量单词通过google翻译,可以获取常用意思,对于发音,词义,词性等没有处理。...5 自然语言常用方法小结(JAVA实现,C#类似): 1 实体基本使用 ? View Code 2 批量读取目录下文件 ?...>(shlMap.entrySet()); System.out.println("-----> 排序顺序"); for

    1.6K130

    使用实体嵌入结构化数据进行深度学习

    嵌入(embedding)想法来自于NLP(word2vec) 在这篇文章中,我们将讨论机器学习中两个问题:第一个问题是关于深度学习如何在图像和文本上表现良好,并且我们如何在表格数据中使用它。...让我们来看看它是如何在短句中奏效: ‘Deep learning is deep’ 我们可以用一个向量来表示每个单词,所以“deep”这个词就变成了像是[0.20, 0.82, 0.45, 0.67]...实体嵌入指的是在分类变量上使用这一原则,即一个分类变量每一个类别都由一个向量表示。让我们快速回顾一下在机器学习中处理分类变量两种常用方法。...独热编码:创建二进制子特性,word_deep, word_learning, word_is。这些是属于该数据点类别为1,其他则为0。...流行方法是t-SNE,它是一种用于维数减少技术,可以很好地利用高维性来可视化数据集。让我们用两个快速可视化嵌入例子来结束这篇文章。以下是家得宝(美国家居连锁店)产品及其所属类别的可视化嵌入。

    2.3K80
    领券