इसके साथ एक समाधान reduce()
:
int[] array = {23, 3, 56, 97, 42};
// directly print out
Arrays.stream(array).reduce((x, y) -> x > y ? x : y).ifPresent(System.out::println);
// get the result as an int
int res = Arrays.stream(array).reduce((x, y) -> x > y ? x : y).getAsInt();
System.out.println(res);
>>
97
97
उपरोक्त कोड reduce()
में Optional
, प्रारूप में डेटा लौटाता है , जिसे आप int
द्वारा परिवर्तित कर सकते हैं getAsInt()
।
यदि हम एक निश्चित संख्या के साथ अधिकतम मूल्य की तुलना करना चाहते हैं, तो हम इसमें एक मूल्य शुरू कर सकते हैं reduce()
:
int[] array = {23, 3, 56, 97, 42};
// e.g., compare with 100
int max = Arrays.stream(array).reduce(100, (x, y) -> x > y ? x : y);
System.out.println(max);
>>
100
ऊपर दिए गए कोड में, जब reduce()
पहले पैरामीटर के रूप में एक पहचान (प्रारंभ मान) के साथ, यह पहचान के साथ उसी प्रारूप में डेटा लौटाता है। इस संपत्ति के साथ, हम इस समाधान को अन्य सरणियों पर लागू कर सकते हैं:
double[] array = {23.1, 3, 56.6, 97, 42};
double max = Arrays.stream(array).reduce(array[0], (x, y) -> x > y ? x : y);
System.out.println(max);
>>
97.0
Collections.max(Arrays.asList())
।