스트림 : 데이터 소스를 추상화하고, 이를 다루는데 자주 사용되는 메서드를 정의해놓은 것
즉 우리가 기존에 데이터를 사용할 때 반복문 등을 활용하였을 때 재사용성이 떨어지고 같은 기능의 메서드의 중복 정의를 했던 것들을 추상화하여 더욱 간단하게 사용하는 것을 의미한다.
//기존 데이터의 배열과 List 형태
String strArr = {"aaa", "bbb", "ccc"}
List<String> strList = Arrays.asList(strArr);
//해당 데이터 기반 스트림 생성
Stream<String> strStream1 = Arrays.stream(strArr);
Stream<String> strStream2 = strList.stream();
//출력 형태는 strStream1과 strStream2 모두 동일
strStream1.sorted().forEach(System.out::println);