Stream (java.util.Stream)은 람다를 활용할 수 있는 기술 중 하나이다.
기존 for, foreach문을 돌면서 요소들을 하나씩 꺼내 다루는 방법은 로직이 복잡해지면 코드의 양이 많아지고 내부의 로직이 복잡해 질 수 있다.
Stream은 데이터 흐름이라고 하는데, 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합하여 원하는 결과를 필터링하고, 가공된 결과를 얻을 수 있다.
가장 좋은 점은 람다를 활용하여 코드의 양을 줄이고 간결하게 표현이 가능하다. -> 이말은 즉슨 배열과 컬렉션을 함수형으로 처리할 수 있다.
전체 -> 맵핑 -> 필터링 -> 결과 만들기 -> 최종 결과물
해당 게시글은 stream을 공부하면서 계속 채울 예정
Arrays.stream(배열).boxed().collect(Collectors.toList());
boxed() : int, long, double 요소를 Integer, Long, Double 객체로 박싱하여 stream을 생성한다.
ex) int배열을 boxed()진행하면 Stream
생성된 리스트 중 특정 원하는 값만 리스트에 넣고 싶을 경우 사용한다.
filter(? -> ?)
리스트에 저장된 요소들이 하나씩 나오면서 조건을 가지고 평가를 하며 걸러내는 작업을 진행한다.
reserveArray.stream().filter(entity -> !lostArray.contains(entity)).collect(Collectors.toList());