본문 바로가기
공부/Java

Stream.forEach와 Collection.forEach의 차이

by JERO__ 2022. 3. 17.

1. Collection.forEach

 

  • 객체를 생성하지 않고 forEach 메서드를 호출
  • 동시성 문제 : 수정 감지시 ConcurrentModificationException을 던져 "즉시" 멈춤

 

2. Stream.forEach

  • Stream()으로 객체를 생성해야만 forEach를 호출 가능
  • 동시성 문제 : 무조건 리스트 끝까지 돌고 예외를 던진다(NullPointerException)
  • parallelStream 사용시 순서가 보장되지 않을 수 있다.

 

결론적으로, Collection.forEach는 락이 걸려있기에 멀티쓰레드에서 더 안전하다.

'공부 > Java' 카테고리의 다른 글

자바 제네릭(Generic)이란?  (0) 2022.03.18
DTO와 VO 비교  (0) 2022.03.17
클래스와 인스턴스  (0) 2022.03.15
테스트하기 좋은 메서드 만들기 (인터페이스 분리)  (0) 2022.03.14
Optional<T>  (0) 2022.03.13

댓글