java中的iterable <Integer>的Collections.max函数

Ela*_*ich 6 java collections max standard-library

Java Collections.max仅采用可排序对象的集合.但是,由于集合不一定排序,我认为没有任何理由不为可迭代类型实现相同的max函数.

Iterable<T extends Comparable<? super T>>在java的标准库中有最大的方法吗?

Ali*_*ell 14

虽然Guava不是Java的标准库,但它足够接近......

E com.google.common.collect.Ordering#max(Iterable<E> iterable)

例如 T max = Ordering.natural().max(myIterable);

至于为什么标准库没有实现它,可能是因为Collection必须是有限的,但是Iterable不一定是 - 并且可以说,如果非终止Iterable会导致你的代码循环,那么永远不应该接受Iterable永远.


Tom*_*ine 5

Collections.max在1.2中介绍.Iterable是在1.5中引入的.

很少有一个Iterable不是Collection.如果你这样做,那么它很容易实现(小心阅读规范).如果您认为这非常重要,您可以在bugs.sun.com上提交RFE(如果已有,则投票).