java - foreach의 마지막 요소를 제거하면 오류가 보고되는 이유는 무엇입니까?
PHP中文网
PHP中文网 2017-05-17 10:04:40
0
5
916
으아악

스레드 "main"의 예외 java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at wan.ForEach.main(ForEach.java:22)

PHP中文网
PHP中文网

认证0级讲师

모든 응답(5)
大家讲道理

foreach是通过迭代器来实现的,使用迭代器遍历元素时,容器不能试图改变容器的结构,如remove、add操作会抛出异常; 可以使用迭代器的remove요소 삭제 방법.

迷茫

http://tyrion.iteye.com/blog/...

漂亮男人

위에서도 분명히 밝혔는데, 여기서는 간단한 해결 방법 2가지를 알려드리겠습니다
1. Iterator 삭제
2. 목록을 복사하여 순회한 다음 원본 목록을 조작합니다.
물론 Iterator 삭제를 권장합니다

phpcn_u1582

위에서 말한 내용은 매우 공식적입니다. for(Object obj:list)의 메서드는 요소를 삭제하기 위해 목록의 제거 메서드를 호출할 수 없습니다. 그렇지 않으면 Iterator 구조를 결정해야 하기 때문에 예외가 발생합니다. 삭제하는 방법에는 두 가지가 있습니다. 하나는 목록을 복사하고 새 목록을 반복하여 이전 목록의 요소를 제거하는 것이고, 다른 하나는 for(int i; i

習慣沉默

계란을 셀 때, 누군가 몰래 바구니에 계란을 넣거나 가져가면, 직접 계란을 가져가거나 가져가지 않는 이상 잘못된 계산을 하게 되는 경우도 있습니다.

프로그램에서
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿