Java
자바 스트림 Java Stream List<Integer> 합계,평균,최댓값,최솟값 구하기
JM_H
2023. 4. 16. 10:51
Java Stream은 Java 8 부터 추가된 컬렉션(Collection) 데이터를 처리하고 변환하는 기능을 제공하는 API
List<Intege> 형식의 데이터에서 Java Stream을 활용한
각 요소들의 합계,평균,최댓값,최솟값 을 구하는 방법
List<Integer> numbers = Arrays.asList(1,2,3,4,5,null,6,7,8,9,10,null); // 예시 List
// 합계
int sum = numbers.stream()
.filter(Objects::nonNull)
.mapToInt(Integer::intValue)
.sum();
// 평균값
int avg = (int) numbers.stream()
.filter(Objects::nonNull)
.mapToInt(Integer::intValue)
.average()
.orElse(0);
// 최댓값
int max = numbers.stream()
.filter(Objects::nonNull)
.mapToInt(Integer::intValue)
.max()
.orElse(0);
// 최솟값
int min = numbers.stream()
.filter(Objects::nonNull)
.mapToInt(Integer::intValue)
.min()
.orElse(0);
System.out.println("sum : " + sum); // sum : 55
System.out.println("avg : " + avg); // avg : 5
System.out.println("max : " + max); // max : 10
System.out.println("min : " + min); // min : 1
.filter(Objects::nonNull): null 값이 아닌 요소만 추출
.mapToInt(Integer::intValue): Integer 요소를 int 값으로 매핑
.sum(): 요소들의 합계를 구함
.average(): 요소들의 평균값을 구함
.max(): 요소들 중 최댓값을 찾음
.min(): 요소들 중 최솟값을 찾음
.orElse(0): 위에서 구한 결과가 null일 경우 0을 반환