2016-07-14 5 views

답변

0

같은 시점에 컬렉션에서 추가 및 삭제하는 것으로 보입니다. 이렇게하면 단일 시점에서 구조적으로 컬렉션을 두 번 이상 수정하는 것입니다. 따라서 java.util.ConcurrentModificationException을 얻고 있습니다. 이는 "Fail-Fast"반복자가 컬렉션에 사용 된 결과입니다. 페일 세이프 및 페일 패스트 반복기를 설명하는이 링크를 살펴볼 수 있습니다. what-is-fail-safe-fail-fast-iterators-in-java-how-they-are-implemented 및 체크 아웃은 Stephen C.이 작성한 답변입니다.

+0

이 문제를 해결하는 코드 예가 ​​있습니까? – Nicholas

+0

꽤 간단합니다. 컬렉션의 구조를 동일한 시점에서 구조적으로 수정하려고하면 해당 컬렉션을 반복하는 데 사용하는 반복자가 실패합니다. 다음 예제 스 니펫을 확인하십시오 : 'ArrayList sampleList = new ArrayList (); sampleList.add ("hello"); sampleList.add ("world"); 반복자 sampleListItr = sampleList.iterator(); // 목록에서 첫 번째 항목을 제거하려고하면 반복기가 실패합니다. sampleList.remove (0); while (sampleListItr.hasNext()) { System.out.println (sampleListItr.next()); }' 반복자를 피하십시오. –

+0

반복자를 사용하지 않으므로이 문제를 피할 수 있습니다. Java 8은 모든 컬렉션을 반복하는 데 도움이되는'foreach' 메소드를 제공합니다. –

관련 문제