List<Integer> list;
java.util.Collections.max(list)
如何确定列表中是否包含多个最大结果?所以说:如果我找到了最大值,我怎样才能确保这是集合中的唯一条目?
由于
答案 0 :(得分:10)
Integer max = Collections.max(list);
boolean containsMultipleMax = (list.indexOf(max) != list.lastIndexOf(max));
答案 1 :(得分:2)
我会避免使用Collections.max()。只需编写自己的方法。否则,你遍历集合两次:一次是max(),一次是'看'所有元素,第二次是indexOf()+ lastIndexOf()。
boolean containsMultipleMax;
Iterator<Integer> i = list.iterator();
Integer max = i.next();
while (i.hasNext()) {
Integer next = i.next();
final int cmp = next.compareTo(max);
if (cmp > 0) {
max = next;
containsMultipleMax = false;
} else if (cmp == 0) {
containsMultipleMax = true;
}
}
显然,这取决于你收藏的大小...如果它低于1M,那就忽略我;)。