(Java) Fail Fast Iterator
문제상황
1 | private Map<String, String> mappings; |
맵에서 entrySet(key/value 쌍)을 가져와 forEach 돌면서 특정 조건에 맞으면 맵에서 요소를 삭제했더니 한 번만 요소가 삭제되고나서 ConcurrentModificationException을 던졌다.
여기서 아래와 같은 의문점이 생겼다.
- 맵의 요소를 삭제하는 건데 왜 예외를 던질까?
- 왜 한 번만 요소 삭제에 성공하는 걸까?
- 하나의 쓰레드에서 작업했는데 왜
ConcurrentModificationException을 던진 걸까?
