給定一個整數元素列表,如何獲得最大值和它的一次性索引。如果有多個具有相同最大值的元素,則返回其中任何一個元素的索引都可以。如何一次獲取數組的索引和最大值?
例如:
// 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