好的,所以我一直在做一个学校项目,我正在尝试计算不同用户的共同利益。因此,我试图将他们获得的每个共同兴趣的“点”存储在 HashMap 中,然后选择具有最多共同兴趣的用户(最高 HashMap 键)。我已经完成了整数的比较,但是如何返回得分最多的用户?
它读取并加载到列表中的示例 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);
}
});
}