컬렉션의 최고 조상인 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)