배열이나 컬렉션 등을 대상으로 효율적으로 연산 및 소팅을 할 수 있는 객체(일관성 있는 연산을 처리)
ex) 배열에서 큰수 구하기 합 구하기, 어레이리스트에서 큰수 구하기 합 구하기 등 (자료에 상관없이 동일한 연산을 제공)
배열같은 자료를 변화시키지 않음. 다른 메모리를 사용하기 때문에 다른 버퍼를 사용하는데 이부분이 스트림이다. 재사용은 불가능하다.(소모) 다시 사용하기 위해서는 스트림을 다시 생성해야함.
중간의 결과를 알 수 없다.(지연연산)
사용법
자료(배열 등)을 생성후 Arrays.stream에 전달 한다. 그 후 스트림에서 제공하는 메서드를 호출해서 리턴받는다.
스트림의 재사용은 불가능하다.(소모가 되었기 때문에)
다시 스트림을 사용하기 위해서는 스트림은 재 선언 해야함.
배열이 아닌 어레이리스트 등 다른 자료에도 사용가능하다.
리듀스 사용법(람다식 활용)
리듀스 활용법(클래스 이용)
BinaryOperator을 구현해야하는데 BinaryOperator는 펑셔널 인터페이스이다. apply 메서드 하나를 구현해야함.
reduce에 인자로 객체를 전달하면 apply 부분이 수행된다.
'JAVA' 카테고리의 다른 글
[JAVA] 기초문법 - 파일입출력(1) (0) | 2022.01.05 |
---|---|
[JAVA] 기초문법 - 예외처리 (0) | 2022.01.05 |
[JAVA] 기초문법 - 람다식 (0) | 2021.12.01 |
[JAVA] 기초문법 - 내부클래스 (0) | 2021.12.01 |
[JAVA] 기초문법 - 컬렉션 프레임워크(TreeSet, HashMap, TreeMap) (0) | 2021.12.01 |