다양한 데이터 소스(컬렉션, 배열...)를 표준화된 방법으로 다루기 위한 것으로 데이터 소스를 같은 방식으로 사용할 수 있다.
스트림은 기존 데이터 소스를 변경하지 않아서 필요하면 기존 데이터를 사용할 수 있다. 또, 스트림은 일회용으로 한번 사용하면 다시 사용할 수 없어서 다시 생성해야 한다.
스트림은 다양한 데이터 소스를 표준화하여 다룬다고 했기 때문에 다양한 데이터 소스가 스트림으로 변환하는 법을 알면 된다!
1. 컬렉션
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
// 리스트를 스트림으로 변환하기
Stream<Integer> stream = list.stream();
// 1. 기본자료형
int[] intArr = {1,2,3,4,5};
// Arrays의 stream() 이용
IntStream intStream = Arrays.stream(intArr);
// IntStream의 of() 이용
IntStream intStream2 = IntStream.of(intArr);
// 2. 래퍼클래스
Integer[] intArr2 = {10, 20, 30, 40, 50};
// Arrays의 stream() 이용
Stream<Integer> intStream3 = Arrays.stream(intArr2);
// Stream의 of() 이용
Stream<Integer> intStream4 = Stream.of(intArr2);
// 3. 참조형
String[] strArr = {"one", "two", "three"};
// Arrays의 stream() 이용
Stream<String> strStream = Arrays.stream(strArr);
// Stream의 of() 이용
Stream<String> strStream2 = Stream.of(strArr);