본문 바로가기

JAVA

[JAVA] 기초문법 - 스트림

배열이나 컬렉션 등을 대상으로 효율적으로 연산 및 소팅을 할 수 있는 객체(일관성 있는 연산을 처리)

ex) 배열에서 큰수 구하기 합 구하기, 어레이리스트에서 큰수 구하기 합 구하기 등 (자료에 상관없이 동일한 연산을 제공)

배열같은 자료를 변화시키지 않음. 다른 메모리를 사용하기 때문에 다른 버퍼를 사용하는데 이부분이 스트림이다. 재사용은 불가능하다.(소모) 다시 사용하기 위해서는 스트림을 다시 생성해야함.

중간의 결과를 알 수 없다.(지연연산)

사용법

자료(배열 등)을 생성후 Arrays.stream에 전달 한다. 그 후 스트림에서 제공하는 메서드를 호출해서 리턴받는다.

스트림의 재사용은 불가능하다.(소모가 되었기 때문에)

다시 스트림을 사용하기 위해서는 스트림은 재 선언 해야함.

배열이 아닌 어레이리스트 등 다른 자료에도 사용가능하다.

리듀스 사용법(람다식 활용)

리듀스 활용법(클래스 이용)

BinaryOperator을 구현해야하는데 BinaryOperator는 펑셔널 인터페이스이다. apply 메서드 하나를 구현해야함.

reduce에 인자로 객체를 전달하면 apply 부분이 수행된다.