【发布时间】:2016-02-07 19:22:54
【问题描述】:
我有这个示例函数来获取列表中投票最多的名字,.. 只要我知道列表中的人的名字,它应该像下面这样简单。
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 "";
}
但是,我没有,所以下面的代码没有用。虽然我可以通过某些方式做到这一点.. 做循环等。如果列表的长度达到大约数百万,性能将是我的问题。 那么有没有办法减少这个工作呢?或者我真的应该去计算唯一性等等。
【问题讨论】:
-
您只需要一个循环来填充您计算出现次数的地图(地图键将是名称,值是遇到的次数)。然后选择出现次数最多的地图条目。
标签: java arrays string list collections