SeouliteLab

[Java/자바] 반복문 안에서 List의 요소 삭제 방법 본문

프로그래밍

[Java/자바] 반복문 안에서 List의 요소 삭제 방법

Seoulite Lab 2024. 3. 11. 10:44

Java에서 반복문 안에서 List의 요소를 안전하게 삭제하는 방법에 대해 알아보겠습니다. 반복문 안에서 요소를 삭제할 때는 몇 가지 주의할 점이 있습니다. 이러한 주의사항을 예제와 함께 살펴보겠습니다.

1. Iterator를 사용하여 요소 삭제

가장 안전하고 권장되는 방법은 Iterator를 사용하여 요소를 삭제하는 것입니다. Iterator를 사용하면 ConcurrentModificationException을 방지할 수 있습니다.

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    if (element.equals("B")) {
        iterator.remove();
    }
}
System.out.println(list); // 출력 결과: [A, C]

2. 인덱스를 역순으로 순회하여 요소 삭제

인덱스를 역순으로 순회하여 요소를 삭제하는 방법도 가능합니다. 이 방법은 리스트가 매우 큰 경우에 효율적입니다.

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");

for (int i = list.size() - 1; i >= 0; i--) {
    String element = list.get(i);
    if (element.equals("B")) {
        list.remove(i);
    }
}
System.out.println(list); // 출력 결과: [A, C]