给定一个整数元素列表,如何获得最大值和它的一次性索引。如果有多个具有相同最大值的元素,则返回其中任何一个元素的索引都可以。如何一次获取数组的索引和最大值?
例如:
// Initialize list of integer
List<Integer> intList = Arrays.asList(5, 8, 3, 2);
// To get max value
Optional<Integer> maxVal = intList.stream().reduce(Integer::max);
// But how could I also get its index without iterating the array again?
如果我必须这样做只有一次,我可以排序的阵列,并获得第一个或最后一个(根据排序顺序)。但是,我想看看我们如何在不分类的情况下做到这一点。
什么是盒装的意义是什么? –
@SriniK我相信那是因为你不能有一个“Comparator”。但是,再次,我可能是错的,因为我对Java 8还是有点新的。 –
CKing
@Chetan Kinger:你说得对,没有'Comparator',因此'IntStream'不提供'max(比较器) '方法,但只有'max()'在这里没有帮助(同样适用于'min'或'sorted','IntStream'只支持自然顺序)。 –
Holger