我有这个示例函数来获得列表中最受欢迎的名字,.. 它应该如下简单,如果我只知道名单中的名字。有没有办法获得数组中元素出现的最高次数?
public static String getHighestVotes(final List<String> votedNames) {
int a = Collections.frequency(votedNames, "Ann");
int b= Collections.frequency(votedNames, "Annie");
int c = Collections.frequency(votedNames, "Ana");
//some logic code here..
return "";
}
但是,我没有那么下面的代码是没有用的。虽然我可以在某些方面做到这一点...做循环等,如果列表的长度将约为数百万,性能将是我的问题。 那么有没有减少这个工作?或者我真的应该去计算Unique等等。
你只需要一个循环,填充一个地图,你算的出现(图关键是名字,值一直遇到了它的次数)。然后,您选择发生率最高的地图条目。 – biziclop