具有compareTo java

时间:2016-01-12 20:55:26

标签: java compare comparator

作为一般概念,假设我们有一个compareTo方法,它返回1,0或-1。

如何使用compareTo方法使用迭代器查找数组中的最大值?

2 个答案:

答案 0 :(得分:3)

简单地:

Iterator<E> it = collection.iterator;
E max = null;
while(it.hasNext()) {
    if(max == null) {
        max = it.next();
    } else {
        e = it.next();
        if(e.compareTo(max) > 0) {
            max = e;
        }
    }
}

答案 1 :(得分:1)

如果您只是想在数组中找到最大元素(没有显式使用迭代器和compareTo),那么您可以将数组转换为Collection或Stream:

Integer[] objectArray = {3,66,4,22,4};
List<Integer> objectList = Arrays.asList(objectArray);
System.out.println(Collections.max(objectList));

int[] primitiveArray = {3,66,4,22,4};
IntStream intStream = Arrays.stream(primitiveArray);
System.out.println(intStream.max().getAsInt());

Collections.max使用迭代器和compareTo引擎盖(通过阅读其源代码可以看到),但第二种方式不是(因为它使用基元)。