基于频率对单词的数组列表进行排序并找到其频率等级

时间:2014-11-18 13:04:38

标签: java sorting arraylist ranking

我给了一个文本文件来阅读。我可以找到文本和文件中的单词及其频率。我将这些数据存储在ArrayList<HashEntry>中,其中HashEntry包含一个带有单词的键和带有频率的值。我使用ArrayList按递减频率顺序对此Collections.sort进行了排序。

所以我最终得到这样的东西:

"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

我需要能够产生能够告诉我发生次数的东西。例如,&#34; a&#34;会排名第一,因为它看起来最多。出现两次的所有内容都会排在第2位。&#34; talk&#34;排名第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 个答案:

没有答案