스트림이란?
- 데이터소스를 다루기 위한 표준
- 데이터소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드가 정의되어 있음
- 예를 들어, 배열과 List로부터 스트림을 생성하는 방법은 다음과 같다.
String[] strArr = {"aaa", "ddd", "ccc"};
List<String> strList = Arrays.asList(strArr);
// stream 생성
Stream<String> strStream1 = Arrays.stream(strArr);
Stream<String> strStream2 = strList.stream();
// stream 사용 -> 데이터소스는 다르지만 정렬하고 출력하는 방법은 완전히 동일하다.
strStream1.sorted().forEach(System.out::println);
strStream2.sorted().forEach(System.out::println);
주의할 점
- 스트림은 데이터 소스를 변경하지 않는다.
- 스트림은 일회용이다.
strStream1.sorted().forEach(..);
int numOfStr = strStream1.count(); // 에러. 스트림이 이미 닫혔음.
스트림이란?
주의할 점