동시 수정 예외 처리
문제:
반복 시 동시 수정 예외 발생 동시 수정이 없는 것처럼 보이는 경우에도 목록
구현:
제공된 코드는 목록과 목록 반복자를 동시에 생성합니다. 그런 다음 반복하는 동안 목록에 요소를 추가하여 예외가 발생합니다.
import java.util.*; public class SomeClass { public static void main(String[] args) { List<String> s = new ArrayList<>(); ListIterator<String> it = s.listIterator(); for (String a : args) s.add(a); if (it.hasNext()) String item = it.next(); System.out.println(s); } }
해결책:
예외를 방지하려면 다음과 같이 코드를 수정하세요.
import java.util.*; public class SomeClass { public static void main(String[] args) { List<String> s = new ArrayList<>(); for(String a : args) s.add(a); ListIterator<String> it = s.listIterator(); if(it.hasNext()) { String item = it.next(); } System.out.println(s); } }
이 수정된 코드에서는 모든 요소가 목록에 추가된 후에 목록 반복자가 생성됩니다. 이렇게 하면 반복자를 생성하고 사용하는 사이에 목록이 수정되지 않습니다.
위 내용은 목록을 반복하고 수정할 때 ConcurrentModificationException을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!