스트림이란?
자료구조 다루기
- 기존에는 for문과 iterator를 사용해야 했다.
- 너무 길고 알아보기 어려우며, 재사용성도 떨어진다.
- 데이터 소스마다 다른 방식으로 다뤄야 한다.
그래서 스트림이라는 것을 만들었다.
스트림의 예시
다음과 같은 코드가 있다고 쳐보자.
java
for (String str : strList)
System.out.println(str);
이 코드를 스트림을 사용하면 다음처럼 바꿀 수 있다.
java
stream.forEach(System.out::println);
스트림의 특징
- 자료구조 내부의 데이터를 변경하지 않는다.
- 일회용이다.
- 내부 반복으로 처리한다.
- 병렬처리가 쉬워진다.
- 연산(=메소드)를 계속 점으로 잇는다.
java
stream.distinct().limit(5).sorted().forEach(System.out::println);
-
여기에서 맨 마지막에 있는 것을 최종연산이라고 한다.
-
나머지 연산을 중간연산이라고 하며, 뒤에 연산을 연결할 수 있다.
-
최종연산이 수행되어야 중간연산이 수행되지 않는다.
중간연산을 호출하는 것은 작업을 지정해주는 것일 뿐이다.
스트림 파악하기
스트림 만들기
일단 자료구조를 스트림으로 만들어야 한다.
java
Stream<String> stream = Stream.of(strArr);