JAVA 에서 ArrayList 메소드중 remove를 루프문을 돌면서 사용하고 싶은 데 자칫하면 삭제된 인덱스가 꼬여서
java.util.ConcurrentModificationException 이 발생한다.
ArrrayList를 루프문 돌면서 삭제는 Iterator 를 사용하면 깔끔하다.
// ArrayList 초기화
ArrayList<Integer> list = new ArrayList<>();
// list에 원소들 추가
list.add(1);
list.add(2);
...
// iterator 사용
Iterator it = list.iterator();
// 10 보다 작다면 삭제해버린다.
while(it.hasNext()){
int next = it.next();
if( next < 10 ){
it.remove();
}
}
'Java' 카테고리의 다른 글
[JAVA] Enum 내부 동작원리를 중심으로 알아보기 (0) | 2021.02.26 |
---|---|
[JAVA] Comparator 란? (feat. Generics ) (0) | 2021.02.24 |
[JAVA] Comparable 이란? (0) | 2021.02.19 |
[JAVA] next_permutation, prev_permutation (0) | 2020.09.19 |
백트래킹을 이용한 순열 in java (0) | 2020.08.30 |
댓글