java.util.ConcurrentModificationException 문제 해결
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
map.put("4", "4");
map.put("5", "5");
Set<String> keySet = map.keySet();
Iterator<String> itr = keySet.iterator();
Set<String> removeSet = new HashSet<>();
while (itr.hasNext()) {
String key = itr.next();
if (key.equals("1") || key.equals("2")) {
removeSet.add(key);
}
}
keySet.removeAll(removeSet);
for(String s : keySet){
System.out.print(s+" ");
}
}
2. 일부 요소를 삭제하면 Iterator를 직접 사용할 수도 있습니다.remove () 방법;테스트 코드:
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
map.put("4", "4");
map.put("5", "5");
Set<String> keySet = map.keySet();
Iterator<String> itr = keySet.iterator();
while (itr.hasNext()) {
String key = itr.next();
if (key.equals("1") || key.equals("2")) {
itr.remove();
}
}
for(String s : keySet){
System.out.print(s+" ");
}
}
3. 맵을 사용하면 ConcurrentHashMap을 사용하여 이런 문제의 발생을 피할 수 있다.4. List, Set, Map에 대한 수정 삭제 작업이 있을 때, 데이터를 훑어볼 때 교체기 Iterator를 사용하지 않습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception Class에서 에러 코드 해석 ~초기초편~직장에서 C# 프로젝트가 내뿜는 오류 코드를 구문 분석하고 오류의 위치를 확인하기 위해 Exception class를 활용할 수 있었습니다. 지금까지 Exception Class 에 대해서 별로 파악할 수 없었기 때...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.