Collection의 값을 반복문 내부에서 수정할 때 발생되는 예외이다.
Collection의 값을 수정할 때, 삭제하는 경우 그 크기를 줄여야 한다.
하지만, 아래 코드는 삭제가 아닌 추가만 하고 있다.
for(int i=2; i<9; i++){
Set<Integer> count = totalList.get(i);
for(int j=1; j<i+1; i++){
Set<Integer> preSet = totalList.get(j);
Set<Integer> postSet = totalList.get(i-j);
for (int pre : preSet) {
for (int post : postSet) {
count.add(pre + post);
count.add(pre - post);
count.add(pre * post);
if(pre!=0 && post!=0){
count.add(pre/post);
}
}
}
StringBuilder sb = new StringBuilder();
for(int k=0; k<i; k++){
sb.append(N);
}
count.add(Integer.parseInt(sb.toString()));
}
}
위 코드를 보면 딱히 문제될게 없어 보인다.
그 이유는, set의 값을 삭제하는게 아닌 단순히 추가만 하기 때문이다.
하지만 자세히 살펴보면 오타가 있다.
for(int i=2; i<9; i++){
Set<Integer> count = totalList.get(i);
for(int j=1; j<i+1; i++){
Set<Integer> preSet = totalList.get(j);
Set<Integer> postSet = totalList.get(i-j);
...
}
...
}
두 번째 반복문에서 j를 사용하고 있는데, i++을 하고 있다....
그렇다.
Collection를 수정할 때 반복문에 오타가 있는지 없는지 주의깊게 확인하자!
'삽질' 카테고리의 다른 글
[AWS]Error: checking AWS STS access – cannot get role ARN for current session (0) | 2022.12.02 |
---|---|
[Java]System.out.println \n와 \r\n (0) | 2022.11.20 |
[Flask] FileNotFound Error (0) | 2022.06.04 |
[Flask]ConnectionError: HTTPConnectionPool urllib3.connection.HTTPConnection (0) | 2022.06.04 |
[Flask]Celery kombu.exceptions.EncodeError: Object of type 'bytes' is not JSON serializable (0) | 2022.06.04 |