-2
我有一系列論文,每篇論文都有一組關鍵字分配給它。我想獲得一張地圖,它將在所有文件中存儲關鍵字和頻率總和。我已經執行如下:地圖中的重複鍵
public Map<Keyword, Integer> getKeywordFrequencies(List<Integer> userPapers,
Map<Integer, List<PaperKeywordMapping>> paperKeywords) {
Map<Keyword, Integer> frequencies = new HashMap<>();
for (Integer ind : userPapers) {
for (PaperKeywordMapping pKeyword : paperKeywords.get(ind)) {
frequencies.compute(pKeyword.getKeyword(), (k, v) -> {
return v == null ? pKeyword.getTermFrequency() : v + pKeyword.getTermFrequency();
});
}
}
frequencies.forEach((k,v)->System.out.println("keyword : " + k.getKeywordName() + " freq : " + v));
return frequencies;
}
問題是,我沒有得到唯一的鍵在地圖中。這裏輸出:
keyword : Nonfiction freq : 60
keyword : Reference freq : 38
keyword : Sports freq : 263
keyword : Arts freq : 90
keyword : Astronomy freq : 50
keyword : Medicine freq : 16
keyword : Applied freq : 31
keyword : History freq : 106
keyword : Discrete freq : 47
keyword : microeconomics freq : 68
keyword : macroeconomics freq : 41
keyword : Nonfiction freq : 99
keyword : Reference freq : 101
keyword : Sports freq : 262
keyword : Arts freq : 126
keyword : Astronomy freq : 58
keyword : Medicine freq : 31
試圖添加檢查,如果密鑰存在或不存在,但仍然相同。
任何幫助表示讚賞。
使用Set來保證唯一鍵 – Alfabravo
您的關鍵字對象需要實現適當的equals方法。 – Marvin
@Marvin,實現已經存在。 – Cap