SMALL
Stream 클래스란?
Java 에서 Stream 클래스는 데이터를 처리하는데 유용한 기능을 제공하는 API 이다. 함수형 프로그래밍의 개념을 적용하여 데이터를 필터링, 매핑, 집계 등의 작업을 수행할수 있다.
Stream 클래스 특징
- 데이터를 한 번에 한 개씩 처리하는 게으른(lazy) 연산 방식을 사용하여 성능을 최적화합니다.
- 병렬 처리를 지원하여 대량의 데이터를 빠르게 처리할 수 있습니다.
- 중간 연산과 최종 연산으로 구성되어 있으며, 중간 연산은 다른 스트림을 반환하고 최종 연산은 스트림의 요소를 소비하여 결과를 반환합니다.
- 람다식을 사용하여 작업을 정의할 수 있습니다.
중간 연산 (Intermediate operations)
- filter(Predicate<T> predicate): 주어진 조건에 맞는 요소들로 이루어진 스트림을 반환합니다.
- map(Function<T, R> mapper): 요소를 변환하여 새로운 스트림을 반환합니다.
- flatMap(Function<T, Stream<R>> mapper): 각 요소를 스트림으로 매핑하여 하나의 스트림으로 병합합니다.
- distinct(): 중복된 요소를 제거한 스트림을 반환합니다.
- sorted(): 요소를 정렬한 스트림을 반환합니다.
- peek(Consumer<T> action): 각 요소를 소비하기 전에 지정된 동작을 수행합니다.
최종 연산 (Terminal operations)
- count(): 스트림의 요소 개수를 반환합니다.
- collect(Collector<T, A, R> collector): 스트림의 요소를 수집하여 지정된 컨테이너나 컬렉션으로 변환합니다.
- forEach(Consumer<T> action): 각 요소에 대해 지정된 동작을 수행합니다.
- reduce(BinaryOperator<T> accumulator): 지정된 누산기 함수를 사용하여 스트림의 요소를 하나의 값으로 줄입니다.
- anyMatch(Predicate<T> predicate): 스트림의 요소 중 하나라도 지정된 조건을 만족하는지 여부를 반환합니다.
- allMatch(Predicate<T> predicate): 스트림의 모든 요소가 지정된 조건을 만족하는지 여부를 반환합니다.
- noneMatch(Predicate<T> predicate): 스트림의 모든 요소가 지정된 조건을 만족하지 않는지 여부를 반환합니다.
- findFirst(): 스트림에서 첫 번째 요소를 반환합니다.
- findAny(): 스트림에서 임의의 요소를 반환합니다. (병렬 스트림에서는 최적화를 위해 첫 번째 요소를 반환할 수도 있습니다.)
반응형
LIST