스트림 ?
여러 자료의 처리에 대한 기능을 구현해 놓은 클래스
1. 스트림 특징
- 자료의 대상과 상관없이 항상 동일한 연산을 수행
- 한 번 생성 & 사용한 스트림은 재사용 할 수 없음
- 스트림의 연산은 기존 자료에 영향을 주지 않음
2. 스트림연산에는 중간연산과 최종연산 두 가지가 있음
- 중간연산 : 자료를 거르거나 변경하여 또 다른 자료를 내부적으로 생성
- 최종연산 : 생성된 내부자료를 소모해 가면서 연산을 수행
중간연산 : filter(), map()
filter() : 조건을 넣고 그 조건에 참인 경우만 추출
map() : 이름만 출력
최종연산 : forEach(), count(), sum(), reduce()
forEach() : 하나씩 출력 count() : 개수 출력 sum() : 합계 reduce()
*배열 요소의 합과 개수출력
Arrays에 stream을 호출 한 뒤 sum()연산으로 배열에 저장된 값을 모두 더함
Arrays에 stream을 호출 한 뒤 count()연산으로 배열의 요소 개수를 반환
-> Type mismatch : cannot convert from long to int
-> (int)형으로 변환
Collection에서 스트림 활용(ArrayList)
ⓐ. ArrayList 생성
ⓑ. stream메서드 사용해서 스트림 생성
ⓒ. 모든 요소를 하나씩 출력(forEach())
: forEach메서드가 수행 -> 요소가 하나씩 변수 s에 대입 -> 매개변수로 받아 출력문 호출
ⓓ. 글자크기가 5 이상인 요소 출력(filter, forEach)
: 위에서 stream변수를 생성했지만 forEach가 수행되면서 자료가 소모됨 -> 새로 스트림을 생성해야함
'STUDY > JAVA' 카테고리의 다른 글
List와 Array(배열)의 차이점 + ArrayList (0) | 2022.10.27 |
---|---|
오버로딩과 오버라이딩의 차이점 (0) | 2022.10.26 |
JAVA - @Override(메소드 재정의) (0) | 2022.05.11 |
JAVA - 상속(Inheritance) (0) | 2022.05.11 |
JAVA - Set컬렉션 인터페이스 /HashSet 클래스 (0) | 2022.05.04 |