본문 바로가기
언어/JAVA

[JAVA] Stream API

by 코딩맛집 2024. 1. 5.

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' 카테고리의 다른 글

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
[Java] 배열을 문자열로 변환  (0) 2023.05.02