스트림?
배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 다른 클래스이지만
같은 방식으로 다룰 수 있게 해주며 재사용성도 높여주는 기능이다.
스트림을 사용하면 코드가 간결하고 이해하기 쉬우며 재사용성이 높아진다. 스트림은 소스를 변경하지 않는다, 데이터에서 소스를 읽기만 하기 때문이다. 스트림은 Iterator처럼 일회용 이다, 때문에 다시 사용하려면 스트림을 다시 생성해야한다. 스트림이 제공하는 다양한 연산으로 복잡한 작업들을 간단히 처리할 수 있다. |
스트림의 생성 과정과 사용예
1. 스트림 생성의 대상이 될 String[]과 List
String[] strArr = {"aaa", "ddd", "ccc"};
List<String> strList = Arrays.asList(strArr);
2. 스트림 생성
Stream<String> strStream1 = strList.stream(); // 스트림 생성
Stream<String> strStream2 = Arrays.stream(strArr); // 스트림 생성
3. 스트림 사용 예
strStream1.sorted().forEach(System.out::println);
strStream2.sorted().forEach(System.out::println);
aaa
ccc
ddd
aaa
ccc
ddd
위의 코드를 보면 알 수 있듯이 스트림을 사용한 코드가 간결하고 쉬우며 재사용성도 높다.
이처럼 어떤 데이터의 집합이라고 해도 스트림을 이용하면 동일한 방법으로
데이터를 처리할 수 있게 된다.
스트림은 크게 생성
- 중간연산
- 최종연산
으로 나누어져 있고
앞으로 공부할 내용이기도 하다.
오늘부터 다시 하나하나 알아보려 한다.
댓글