컬렉션

컬렉션의 최고 조상인 Collection에 stream()이 정의되어있기 때문에 List와 Set과 같은 컬렉션 클래스는 아래의 코드를 통해 스트림을 생성할 수 있다.

//컬렉션 데이터로 스트림 생성
Stream<T> Collection.stream()

//List 활용 예
List<Integer> list = Arrays.asList(1,2,3,4,5);  //리스트 생성
Stream<Integer> intStream = list.stream();      //컬렉션 생성

//출력
intStream.forEach(Ststem.out::println);         //모든 요소를 소모하며 작업 수행
intStream.forEach(Ststem.out::println);         //모든 요소가 소모되었기 때문에 에러 발생

배열

배열을 소스로 하는 스트림 메서드는 Stream과 Arrays에 static 메서드로 정의되어있다.

//Stream<T> Stream.of(T... values)
Stream<String> strStream = Stream.of("a", "b", "c");

//Stream<T> Stream.of(T[])
Stream<String> strStream = Stream.of(new String[]("a", "b", "c"));

//Stream<T> Arrays.stream(T[])
Stream<String> strStream = Arrays.stream(new String[]("a", "b", "c"));

//Stream<T> Arrays.stream(T[], startInclusive, endInclusive)
Stream<String> strStream = Arrays.stream(new String[]("a", "b", "c"), 0 , 3);

int, double, long 등의 기본형 스트림은 아래와 같이도 할 수 있다.

IntStream IntStream.of(int... values)
IntStream IntStream.of(int[])
IntStream Arrays.stream(int[])
IntStream<T> Arrays.stream(int[] array, startInclusive, endInclusive)