대량의 데이터를 가공해서 축소하는 것을 일반적으로 리덕션이라고 합니다.
데이의 합계, 평균값, 카운팅, 최대값, 최소값 등이 대표적인 리덕션의 결과물이라고 볼 수 있습니다.
그러나 컬렉션의 요소를 리덕션의 결과물로 바로 집계할 수 없을 경우에는 집계하기 좋도록 필터링, 매핑, 정렬, 그룹핑 등의 중간 처리가 필요합니다.
스트림은 크게 세가지 단계에 걸쳐서 동작한다.
- 스트림 생성: 스트림 인스턴스 생성.
- 스트림 중개 연산(스트림 변환, 가공): 필터링(filtering) 및 맵핑(mapping) 등 원하는 결과를 만들어가는 중간 작업.
- 스트림 최종 연산(스트림 사용, 결과): 최종적으로 결과를 만들어내는 작업
배열 스트림
배열 스트림은 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]
- 중간 처리에서는 반복, 매핑, 필터링, 정렬 등을 수행한다.
- 최종 처리에서는 반복, 카운팅, 평균, 총합 등의 집계 처리를 수행한다.
'프로그래밍 언어 > 자바(JAVA)' 카테고리의 다른 글
http 프로토콜 소켓을 이용한 직접 구현(웹브라우저 구현 원리) (0) | 2022.05.23 |
---|---|
자바 컴파일러가 공짜로 해주는 거 (0) | 2022.05.02 |
자바 함수 만드는 법 (0) | 2022.04.15 |
Java - JDK 설치 및 이클립스 설치 (0) | 2022.04.05 |
자바에서의 Callback 구현(Event Listener 원리) (0) | 2022.03.27 |