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
}
}
}