ArrayList에서 요소를 탐색하고 제거할 때 ConcurrentModificationException을 극복하는 방법
요소를 동시에 제거하는 동시에 ArrayList를 반복하면 악명 높은 java.dll이 발생할 수 있습니다. util.ConcurrentModificationException. 이 문제를 해결하기 위해 고려해야 할 몇 가지 모범 사례가 있습니다.
한 가지 접근 방식은 제거할 요소의 별도 목록을 만드는 것입니다. 루프 반복 중에 이러한 요소를 보조 목록에 추가하고 반복이 끝나면 OriginalList.removeAll(valuesToRemove) 메서드를 호출합니다.
또는 반복자에서 직접 제거() 메서드를 활용할 수도 있습니다. 이 기술을 사용하려면 향상된 for 루프를 피해야 합니다. 예를 들어, 목록에서 길이가 5를 초과하는 문자열을 제거하려면:
List<String> list = new ArrayList<String>(); for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }
위 내용은 ArrayList에서 요소를 제거할 때 ConcurrentModificationException을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!