List<Integer> list;
java.util.Collections.max(list)
如何确定列表是否包含多个最大结果?可以这么说:如果我找到最大值,我如何确保这是集合中的唯一条目?
谢谢
List<Integer> list;
java.util.Collections.max(list)
如何确定列表是否包含多个最大结果?可以这么说:如果我找到最大值,我如何确保这是集合中的唯一条目?
谢谢
Integer max = Collections.max(list);
boolean containsMultipleMax = (list.indexOf(max) != list.lastIndexOf(max));
我会避免使用 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,请忽略我;)。