[Android] ConcurrentModificationException

thsamajiki·2023년 12월 24일
0

트러블슈팅

목록 보기
17/25

오류

for (ref in refList) {
	for (data in dataList) {
    	if (data.name == turnToEnglish(ref.name)) {
			break
		} else {
			dataList.add(Data())
		}
	}
}

위와 같이 이중 for문으로 순회하며 데이터를 조작하면서 두 데이터를 비교했더니 다음과 같은 오류가 발생했다.

이 오류는 for문으로 순회함과 동시에 데이터가 수정될 때 주로 발생한다.
for문을 순회하면서 요소가 수정되기 때문에, index가 변경되어 일부 요소는 순회하지 않을 수 있다.
그래서 list는 이를 감지하여 ConcurrentModificationException을 발생시킨다.



해결 방법

다음과 같이 break를 추가하면 오류가 발생하지 않는다!

for (ref in refList) {
	for (data in dataList) {
    	if (data.name == ref.name) {
			break
		} else {
			dataList.add(Data())
			break
		}
	}
}
profile
안드로이드 개발자

0개의 댓글