java根据频率对单词数组列表进行排序并查找其频率等级
我有一个文本文件要读。我可以找到文本和文件中的单词及其频率。我将此数据存储在ArrayList<HashEntry>
中,其中HashEntry
由一个带单词的键和一个带频率的值组成。我使用Collections.sort
按递减的频率顺序对这个ArrayList
进行排序
所以我的结局是这样的:
"a" 3, "a" 3, "a" 3, "now" 2, "days" 2, "everbody" 2, "wanna" 2, "they" 2,
"they" 2, "their" 2, "just" 2, "now" 2, "days" 2, "talk" 1
我需要能够制作一些东西来告诉我事件的等级。例如,“a”的排名为1,因为它看起来最像。每件出现两次的东西都会排在第二位。“talk”的排名是9,因为有8个单词的排名更高
我该怎么做呢?到目前为止,我的尝试遇到了一些问题,因为ArrayList
中存在重复项,并且重复项不一定是连续的。我尝试通过迭代ArrayList
将数据放入哈希表,其中键是单词,但我不确定如何实际计算单词的秩
for (int i = 0; i < ranked.size(); i++) { //ranked is my array list
rankedht.put(ranked.get(i).getKey(),1); //rankedht is a hash table
}
这样做只会得到一个包含单词和频率的哈希表,但那个样就会失去排序
谢谢
共 (0) 个答案