티스토리 뷰

반응형

문제

ArrayList를 순회하며 아이템을 삭제하던 중 ConcurrentModificationException 에러가 났다.  

for (each in a){
    if (each.username == b.username){
        a.remove(each)
    }
}

이런 식으로 ArrayList인 a를 순회하며 b와 같은지 확인하고(username은 unique함) 같을 경우 삭제하는 코드를 짰는데,

하나의 항목을 삭제하고 나면 순회하는 중인 리스트에 영향을 주기 때문에 에러가 났다. 

 

해결 방법 

for (each in a){
    if (each.username == b.username){
        a.remove(each)
        break // 여기서 멈추기
    }
}

break을 달아줘서 remove()로 리스트에 modification이 이루어질 경우, 순회를 멈추게 하면 해결된다. 

반응형