Stream API는 순차적 or 병렬적으로 다량의 데이터 처리 작업을 돕고자 Java8에 추가되었다.
중간 연산
중간 연산(Intermediate Operation)은 Stream을 전달 받아서 다른 Stream으로 변환하고 Stream을 반환한다.
중간 연산 메소드를 알아보겠습니다.
filter(조건)
- filter는 조건에 맞는 요소로 구성된 새로운 스트림을 반환
map(함수)
- 주어진 함수를 적용한 형태로 스트림을 변환
distinct()
- 중복 제거
sorted()
- 정렬
limit()
- Stream의 요소를 제한
skip()
- Stream의 처음 일부 요소를 건너뜀
peek()
- Stream의 요소를 소모하지 않는다. 연산과 연산 사이에 올바르게 처리되었는지 확인하기 위해 사용한다.
int[] num = {1, 2, 3, 4, 5};
int sum = Arrays.stream(num)
.peek(s -> System.out.print(s))//12345
.sum();
System.out.println();
System.out.println(sum);//15
최종 연산
최종 연산(Terminal Operation)은 Stream을 리턴하지 않으며 연산 결과가 Stream이 아니므로 Stream Pipe Line에서 한 번만 가능합니다.
ex) collect, allMatch, count, forEach, min, max ...etc
void forEach(), void forEachOrdered()
- 요소에 지정된 작업 수행
long count()
- 스트림 요소 개수 반환
Optional max(), Optional min()
- 최대 최소값 반환
Optional findAny()
- 스트림 요소 중 아무거나 하나 반환
Optional findFirst()
- 스트림의 첫 번째 요소 반환
boolean allMatch(), boolean anyMatch(), boolean noneMatch(),
- 모두 만족하는지, 하나라도 만족하는지, 모두 만족하지 않는지
Object[] toArray()
- 배열로 반환
reduce()
- 스트림 요소를 하나씩 줄여가며 계산
collect()
- 스트림 요소를 수집
'언어 > JAVA' 카테고리의 다른 글
[코딩 기초 트레이닝] 문자열 섞기 (0) | 2024.07.29 |
---|---|
HashMap | 값 가져오기 | 정렬하기 | TreeMap | etc (0) | 2024.02.13 |
[JAVA] substring() (1) | 2024.01.04 |
[JAVA] startsWith() 와 endsWith() (1) | 2024.01.04 |
[JAVA] 깊은 복사와 얕은 복사 (0) | 2024.01.02 |