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을 반환
'Java' 카테고리의 다른 글
Java String 문자열 데이터 유효성 체크 (0) | 2023.05.05 |
---|---|
JSON 형식 문자열 Java List<String, Object> 로 변환, JSON 문자열 파싱 (0) | 2023.04.30 |
자바 스트림 Java Stream 두 int[] 배열의 교집합, 합집합, 차집합 구하기 (0) | 2023.04.09 |
자바 스트림 Java Stream 배열을 리스트로 변환, "1,2,3,4,5..." 문자열을 배열로 변환 (0) | 2023.04.01 |
JDK 와 JRE의 차이 (0) | 2022.05.18 |
최근댓글