반응형

filter로 필터링 후에 collect로 새로운 Collection을 만들고, foreach를 돌리는 경우

필터링을 하고 새로운 Collection을 만들었기 때문에, 필터에서 걸러진 것들은 최종 결과물에서 안나올 거라고 생각을 했다.


그런데.. 필터링 되었던 항목이 그대로 포함이 되어 있었다.


이럴 경우에는 collect함수를 사용하면서 기존의 list에 덮어씌우는 작업 후에,

forEach를 돌리면.. 원하던대로 동작한다.



정리하면 아래 코드는 서로 다르게 동작한다는 거다.

체인 메소드 특성상, 내부적으로만 새로운 스트림을 만들기 때문인 것 같다.


list.stream().filter().collect(Collectors.toList()).forEach();


list.stream().filter().collect(Collectors.toList());
list.forEach();
반응형
,