好的,所以我一直在做一個學校的項目,我試圖計算不同用戶的共同興趣。因此,我試圖將他們獲得的「分數」存儲在HashMap中,以獲得他們每個共同的興趣,然後選擇最感興趣的用戶(最高HashMap鍵)。我已經完成了整數的比較,但如何返回用戶最多的點數?Java:如何正確返回對象?
例TXT文件,它讀取來自與加載到列表:
丹尼爾:adcbadcbd
麥:abdcbdcab
public User getMutualUser(User user) {
final Map<User, Integer> points = new HashMap<User, Integer>();
for(User u : users) {
if(u.getName().equals(user.getName())) continue;
for(int i = 0; i < u.getAnswers().size(); i++) {
if(u.getAnswers().get(i).equals(user.getAnswers().get(i))) {
System.out.println(u.getName() + " - " + u.getAnswers().get(i));
int current = points.get(u);
points.put(u, current + 1);
}
}
}
Collections.sort(users, new Comparator<User>() {
public int compare(User u1, User u2) {
Integer score1 = points.get(u1);
Integer score2 = points.get(u2);
return score1.compareTo(score2);
}
});
}
你應該在你的開篇中澄清一下這個語言。說一個'Map'只能有「每個值1個鍵」是一個倒退。地圖只能有「每個KEY1個值」。你還應該指出,就'map'而言,如果'score1.equals(score2)'的關鍵是相同的。 – vpiTriumph
非常感謝,但最終我應該如何返回用戶? – Compressions
謝謝。我根據這些評論編輯了答案。 – Stewart