본문 바로가기
java

JAVA Stream API 정리

by 포잉띠 2024. 8. 22.

JAVA의 Stream API는 데이터 처리 작업을 간결하고 효율적으로 수행할 수 있도록 다양한 메소드를 제공한다.

 

중간 연산 (InterMediate Operations)

중간 연산은 스트림을 반환하는 연산으로, 여러 번 체이닝(연결)할 수 있다. 이 연산들을 최종 연산이 호출될 떄까지 실제로 수행되지 않는다.

filter(Predicate<? super T> predicate) 
// 조건에 맞는 요소들만을 포함하는 새로운 스트림을 반환함

map(Function<? super T, ? extends R> mapper)
// 각 요소에 함수가 적용된 결과로 구성된 새로운 스트림을 반환
// 파이썬의 apply와 비슷한듯

distinct()
// 중복 요소를 제거한 스트림을 반환

sorted()
// 요소들을 정렬한 스트림을반환 

flatMap(Fuction<? super T, ? extends Stream<? extends R>> mapper) 
// 각 요소를 매핑한 결과 스트림을 하나의 스트림으로 평탄화 (flatten)해서 반환함

limit(long maxSize) 
// 스트림의 크기를 지정된 수로 제한함

skip(long n)
// 처음 n개의 요소를 건너뛰고 나머지 요소들로 구성된 스트림을 반환함

 

최종 연산 (Terminal Opertaions)

최종 연산은 스트림을 소모하고, 결과를 반환하는 연산.

이 연산이 호출되면 스트림의 모든 중간 연산이 실행된다.

 

forEach(Consumer<? super T> action) 
// 각 요소에 대해 지정된 작업을 수행함

collect(Collector<? super T, A, R) collector) 
// 스트림의 요소들을 수집하여 결과를 반환함
// ex) 리스트, set 등
// T : 스트림의 요소 타입, A : 중간 집계 타입, R :  최종 결과 타입

reduce(BinaryOperator<T> accmulaotr) 
// 스트림의 요소들을 누적하여 단일 결과를 반환함

count()
// 스트림의 요소 개수를 반환함

min(Comparrator<? super T> comparator) 
// 최소값을 찾고, 그 값을 Optional로 반환함

max(Comparator<? super T> comparator) 
// 최대값을 찾고, 그값을 Optional로 반환함

anyMatch(Predicate<? super T> predicate)
// 하나라도 조건에 맞는 요소가 있으면 true를 반환함

allMatch(Predicate<? super T> predicate) 
// 모든 요소가 조건에 맞아야 true를 반환함

noneMatch(Predicate<? super T> predicate)
// 모든 요소가 조건에 맞지 않으면 true를 반환

toArray()
// 스트림의 모든 요소를 배열로 반환

  

 

스트림 생성 메소드

stream()
// 컬렉션이나 배열에서 스트림을생성함

IntStream.range(int startInclusive, int endExclusive)
// 주어진 범위의 정수로 구성된 스트림을 생성함