본문 바로가기

dev/자바

List remove ConcurrentModificationException

foreach로 리스트 순회하다가 중간에 삭제해야 하는 경우

 

아래와 같이 코드 작성하면 예외가 발생합니다.

 

예제 코드

 

위의 예제 코드는 리스트의 원소가 3인 경우 삭제하다가 ConcurrentModificationException 예외가 발생했습니다.

 

modCount 예외 발생

 

ConcurrentModificationException가 발생한 원인은 리스트에 추가나 삭제를 하면 modCount가 갱신되는데

 

위의 예제 같은 경우 modCount가 제대로 갱신되지 않기 때문입니다.

 

일반 for문

 

따라서 이런 문제를 해결하려면

 

foreach가 아닌 일반 for문을 사용하거나

 

iterator

 

iterator를 사용하거나

 

removeIf

 

removeIf를 사용하는 방법이 있습니다.

'dev > 자바' 카테고리의 다른 글

Try-With-Resource  (0) 2022.02.10
Arrays Collections sort  (0) 2021.12.16
Java NumberFormat DecimalFormat  (0) 2021.07.06
String split 특수문자  (0) 2021.06.18
Java File Separator  (0) 2021.05.26