스트림은 집계 작업을 지원하는 소스의 개체 시퀀스를 나타냅니다. 다음은 스트림의 특성입니다 -
-
요소 시퀀스 - 스트림은 특정 유형의 요소 집합을 순차적으로 제공합니다. 스트림은 요청 시 요소를 가져오거나 계산합니다. 요소를 저장하지 않습니다.
-
출처 − 스트림은 컬렉션, 배열 또는 I/O 리소스를 입력 소스로 사용합니다.
-
집계 작업 − 스트림은 필터, 매핑, 제한, 축소, 찾기, 일치 등과 같은 집계 작업을 지원합니다.
-
파이프라인 - 대부분의 스트림 작업은 결과가 파이프라인될 수 있도록 스트림 자체를 반환합니다. 이러한 작업을 중간 작업이라고 하며 해당 기능은 입력을 받아 처리하고 대상에 출력을 반환하는 것입니다. collect() 메서드는 일반적으로 스트림의 끝을 표시하기 위해 파이프라이닝 작업의 끝에 존재하는 터미널 작업입니다.
-
자동 반복 − 스트림 작업은 명시적인 반복이 필요한 컬렉션과 달리 제공된 소스 요소에 대해 내부적으로 반복을 수행합니다.
예시
이제 예를 살펴보겠습니다 -
import java.util.Collection; import java.util.TreeSet; import java.util.stream.Collectors; import java.util.stream.Stream; public class Demo { public static void main(String[] args) { Stream<String> stream = Stream.of("25", "10", "15", "20", "25"); Collection<String> collection = stream.collect(Collectors.toCollection(TreeSet::new)); System.out.println("Collection = "+collection); } }
출력
Collection = [100, 130, 150, 20, 200, 50, 80]
예시
이제 Java 스트림 counting() 메서드를 사용하여 스트림의 요소 수를 계산해 보겠습니다.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Demo { public static void main(String[] args) { Stream<String> stream = Stream.of("Kevin", "Jofra","Tom", "Chris", "Liam"); // count long count = stream.collect(Collectors.counting()); System.out.println("Number of elements in the stream = "+count); } }
출력
Number of elements in the stream = 5