我给了一个文本文件来阅读。我可以找到文本和文件中的单词及其频率。我将这些数据存储在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
}
这样做只会让我得到一个包含单词和频率的哈希表,但那会丢失排序。
由于