Stream
- 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것.
1. 자료의 대상과 관계 없이 동일한 연산 수행
- 배열, 컬렉션 대상 동일 연산 수행
- 일관성 있는 연산으로 자료의 처리를 쉽고 간단하게
2. 한 번 생성하고 사용한 스트림은 재사용 불가
- 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모된다
- 다른 연산을 위해서는 새로운 스트림을 생성해야 한다
3. 스트림은 기존 자료 변경 불가
- 스트림 생성은 별도의 메모리 공간을 사용한다.
- 기존 자료 변경 불가
4. 스트림 연산은 중간 연산과 최종 연산으로 구분된다.
- 중간 연산은 여러개 적용 가능하다
filter() - 조건에 맞는 요소들만 남긴다
map() - 해당 데이터 중에서 특정 데이터만 꺼낸다
sorted() - 정렬한다
- 최종 연산은 마지막 한번만 적용한다
최종 연산 후에 스트림은 더 이상 다른 연산 적용이 불가
forEach() - 요소를 하나씩 꺼내온다
count() - 요소의 개수 -> long타입으로 (int)캐스팅해서 사용한다
sum() - 요소의 합
reduce(초기값,(a,b)->a+b) - 사용자 지정 연산
요소들을 초기값을 정해두고 지정된 연산대로 진행한다 -> 연산 수정이 가능하다
get() - 연산 후 마지막 남은 값을 가져온다
- 최종 연산 호출시 중간 연산 결과를 모두 적용한다 => 지연 연산
'JAVA' 카테고리의 다른 글
Java 람다식, 람다함수 (0) | 2022.01.06 |
---|---|
Java 내부(inner)클래스 (0) | 2022.01.06 |
Java 날짜와 시간 표현 (0) | 2021.12.27 |
Java java.util / Collection,List ,Set,Map인터페이스 / 주요 메서드 정리 (0) | 2021.12.22 |
Java Class 클래스, java.util 패키지, 제네릭<> (0) | 2021.12.22 |