Java

143. 스트림의 연산 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 1. 10. 15:51

1. 스트림의 연산

  • 스트림이 제공하는 기능 - 중간 연산과 최종 연산
  • 중간 연산
중간 연산 설명
Stream<T> distinct() 중복을 제거
Stream<T> filter(Predicate<T> predicate) 조건에 안 맞는 요소 제외
Stream<T> limit(long maxSize) 스트림의 일부를 잘라낸다.
Stream<T> skip(long n) 스트림의 일부를 건너뛴다.
Stream<T> peek(Consumer<T> action) 스트림의 요소에 작업수행
Stream<T> sorted()
Stream<T> sorted(Comparator<T> comparator)
스트림의 요소를 정렬한다.
Stream<R>
DoubleStream 
IntStream
LongStream

Stream<R>
DoubleStream
IntStream
LongStream
map(Function<T,R> mapper)
mapToDouble(ToDoubleFunction<T> mapper)
mapToInt(ToIntFunction<T> mapper)
mapToLong(ToLongFunction<T> mapper)

flatMap(Function<T,Stream<R>> mapper)
flatMapToDouble(Function<T,DoubleStream> m)
flatMapToInt(Function<T,IntStream> m)
flatMapToLong(Function<T, LongStream> m) 
스트림의 요소를 반환한다.
  • 최종 연산
최종 연산 설명
void forEach(Consumer<? super T> action)
void forEachOrdered(Consumer<? super T> action // 순서유지, 병렬
각 요소에 지정된 작업 수행
long count() 스트림의 요소의 개수 반환
Optional<T> max(Comparator<? super T> comparator)
Optional<T> mim(Comparator<? super T> comparator)
스트림의 최대값/최고값을 반환
Optional<T> findAny() // 아무거나 하나
Optional<T> findFirst() // 첫 번째 요소
스트림의 요소 하나를 반환
boolean allMatch(Predicate<T> p) // 모두 만족하는지
boolean anyMatch(Predicate<T> p) // 하나라도 만족하는지
boolean noneMatch(Predicate<T> p) // 모두 만족하지 않는지
주어진 조각을 모든 요소가 만족시키는지
만족시키지 않는지 확인
Object[] toArray()
A[] toArray(IntFunction<A[]> generator)
스트림의 모든 요소를 배열로 반환
Optional<T> reduce(BinaryOperator<T> accumulator)
T reduce(T identity, BinaryOperator<T> accumulator)
U reduce(U identity, BiFunction<U,T,U> accumulator,
                                    BinaryOperator<U> combiner)
스트림의 요소를 하나씩 줄여가면서(리듀싱)
계산한다.
R collect(Collector<T,A,R> collector)
R collect(Supplier<R> supplier, BiConsumer<R,T> accumulator,
                                                    BiConsumer<R,R> combiner)
스트림의 요소를 수집한다.
주로 요소를 그룹화하거나 분할한
결과를 컬렉션에 담아 반환하는데
사용된다.