Movie1{{'hello',5},{'foo',3}}
Movie2{{'hi',2},{'foo',2}}
在测试时,我正在测试 2 部电影,每部电影都有大约 20 个独特的单词,按单词和频率对分组
public ArrayList<Pair<String, Integer>> getWordsAndFrequency() {
String[] keys = description.split(" ");
String[] uniqueKeys;
int count = 0;
uniqueKeys = getUniqueKeys(keys);
for (String key : uniqueKeys) {
if (null == key) {
break;
}
for (String s : keys) {
if (key.equals(s)) {
count++;
}
}
words.add(Pair.of(key, count));
count = 0;
}
sortWords(words);
return words;
}
最佳答案
您的错误是您的 getWordsAndFrequency() 方法实际上向 words
添加了更多条目。所以每次你调用它时,单词列表都会变得越来越长。要解决此问题,您应该计算一次单词和频率并将这些 Pairs 添加到列表中,然后只需在 getWordsAndFrequency() 方法中返回列表而不是每次都计算它。
关于java - 比较对列表以找到相似项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925329/