티스토리 뷰
반응형
Stream을 활용하여 합계를 구하는 로직을 작성해보겠습니다.
합계값 (Sum)
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Integer sum1 = numbers.stream().reduce(0, Integer::sum);
System.out.println("sum1 = " + sum1); // 15
int sum2 = numbers.stream().mapToInt(i -> i).sum();
System.out.println("sum2 = " + sum2); // 15
평균값 (Avg)
final OptionalDouble average = numbers.stream().mapToInt(Integer::intValue).average();
final double avgAsDouble = average.getAsDouble();
System.out.println("avgAsDouble = " + avgAsDouble); // 3.0
여기서 나오는 OptionalDouble 은 Optional<Double> 과 같은 개념으로 java.util 에서 임포트가 가능합니다.
최대값 (Max)
final Integer max = numbers.stream().reduce(0, Integer::max);
final OptionalInt max1 = numbers.stream().mapToInt(Integer::intValue).max();
System.out.println("max = " + max); // 1
System.out.println("max1.orElse(0) = " + max1.orElse(0)); // 1 , null이면 0
OptionalInt 도 마찬가지로 Optional<Integer> 을 의미합니다.
최소값 (Min)
final Integer min = numbers.stream().reduce(0, Integer::min);
final OptionalInt min1 = numbers.stream().mapToInt(Integer::intValue).min();
System.out.println("min = " + min); // 5
System.out.println("min1.getAsInt() = " + min1.getAsInt()); // 5
반응형
'Server' 카테고리의 다른 글
Shell 파일에서 *.jar 파일 백그라운드 실행 (0) | 2022.09.21 |
---|---|
Firebase Push 와 관련된 적용사항 (0) | 2022.09.19 |
[Java] QueryDSL 테스트 클래스에서 사용하기 (0) | 2022.09.12 |
[Java] QueryDSL 쿼리 로그 심플하게 출력하기 (0) | 2022.09.11 |
[Java] Random 활용하는 2가지 꿀팁 (0) | 2022.09.08 |
[Java] JPA 복합키 (2개 이상의 PK) 사용할 때 (0) | 2022.09.06 |
댓글
공지사항