프로그래밍 언어/자바(JAVA)

자바 스트림(Stream)

낙산암 2022. 4. 3. 11:11

대량의 데이터를 가공해서 축소하는 것을 일반적으로 리덕션이라고 합니다.

 

데이의 합계, 평균값, 카운팅, 최대값, 최소값 등이 대표적인 리덕션의 결과물이라고 볼 수 있습니다.

 

그러나 컬렉션의 요소를 리덕션의 결과물로 바로 집계할 수 없을 경우에는 집계하기 좋도록 필터링, 매핑, 정렬, 그룹핑 등의 중간 처리가 필요합니다.

 

 

 

 

스트림은 크게 세가지 단계에 걸쳐서 동작한다.

  1. 스트림 생성: 스트림 인스턴스 생성.
  2. 스트림 중개 연산(스트림 변환, 가공): 필터링(filtering) 및 맵핑(mapping) 등 원하는 결과를 만들어가는 중간 작업.
  3. 스트림 최종 연산(스트림 사용, 결과): 최종적으로 결과를 만들어내는 작업

 

배열 스트림

 

배열 스트림은 Arrays.stream()메소드를 활용하여 생성이 가능하다.

 

String[] str = new String[]{"1", "2", "3", "4", "5"};

Stream<String> stream = Arrays.stream(str);

Stream<String> subStream = Arrays.stream(str, 3, 5); // 3 ~ (5-1) 요소 [4, 5]

 

 

- 중간 처리에서는 반복, 매핑, 필터링, 정렬 등을 수행한다.

- 최종 처리에서는 반복, 카운팅, 평균, 총합 등의 집계 처리를 수행한다.