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을 반환

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기