솔루션 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()
에서 첫 번째 매개 변수로 ID (시작 값)를 사용하면 ID와 동일한 형식으로 데이터를 반환합니다. 이 속성을 사용하면이 솔루션을 다른 배열에 적용 할 수 있습니다.
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())
.