foreach로 리스트 순회하다가 중간에 삭제해야 하는 경우
아래와 같이 코드 작성하면 예외가 발생합니다.
위의 예제 코드는 리스트의 원소가 3인 경우 삭제하다가 ConcurrentModificationException 예외가 발생했습니다.
ConcurrentModificationException가 발생한 원인은 리스트에 추가나 삭제를 하면 modCount가 갱신되는데
위의 예제 같은 경우 modCount가 제대로 갱신되지 않기 때문입니다.
따라서 이런 문제를 해결하려면
foreach가 아닌 일반 for문을 사용하거나
iterator를 사용하거나
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 |