스레드 "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)
大家讲道理2017-05-17 10:06:40
foreach
是通过迭代器来实现的,使用迭代器遍历元素时,容器不能试图改变容器的结构,如remove、add操作会抛出异常; 可以使用迭代器的remove
요소 삭제 방법.
漂亮男人2017-05-17 10:06:40
위에서도 분명히 밝혔는데, 여기서는 간단한 해결 방법 2가지를 알려드리겠습니다
1. Iterator 삭제
2. 목록을 복사하여 순회한 다음 원본 목록을 조작합니다.
물론 Iterator 삭제를 권장합니다
phpcn_u15822017-05-17 10:06:40
위에서 말한 내용은 매우 공식적입니다. for(Object obj:list)의 메서드는 요소를 삭제하기 위해 목록의 제거 메서드를 호출할 수 없습니다. 그렇지 않으면 Iterator 구조를 결정해야 하기 때문에 예외가 발생합니다. 삭제하는 방법에는 두 가지가 있습니다. 하나는 목록을 복사하고 새 목록을 반복하여 이전 목록의 요소를 제거하는 것이고, 다른 하나는 for(int i; i
習慣沉默2017-05-17 10:06:40
계란을 셀 때, 누군가 몰래 바구니에 계란을 넣거나 가져가면, 직접 계란을 가져가거나 가져가지 않는 이상 잘못된 계산을 하게 되는 경우도 있습니다.
프로그램에서