반복하고 싶은 ArrayList가 있습니다. 그것을 반복하면서 동시에 요소를 제거해야합니다. 분명히 이것은을 던집니다 java.util.ConcurrentModificationException
.
이 문제를 처리하는 가장 좋은 방법은 무엇입니까? 먼저 목록을 복제해야합니까?
루프 자체가 아닌 코드의 다른 부분에서 요소를 제거합니다.
내 코드는 다음과 같습니다
public class Test() {
private ArrayList<A> abc = new ArrayList<A>();
public void doStuff() {
for (A a : abc)
a.doSomething();
}
public void removeA(A a) {
abc.remove(a);
}
}
a.doSomething
호출 할 수 있습니다 Test.removeA()
;