HOME > java > collections > arraylist

Java - ArrayList.removeIf() 사용 방법 및 예제

JSFollow27 Mar 2019

ArrayList의 removeIf() 메소드는 인자로 전달된 조건으로 리스트의 아이템들을 삭제합니다. 조건에 부합하는 것은 삭제되고, 그렇지 않는 것은 리스트에 남게 됩니다.

1. ArrayList.removeIf()

ArrayList.removeIf(Predicate<? super E> filter)는 인자로 Predicate를 받습니다. Predicate는 람다 표현식으로 전달할 수 있으며, 리스트에서 아이템을 필터링하는 조건을 표현하고 있습니다.

public boolean removeIf(Predicate<? super E> filter)

자세한 코드는 JDK8 ArrayList.java를 참고해주세요

2. ArrayList.removeIf() 예제

아래 코드는 1 ~ 9에서 3으로 나눈 나머지가 0인 숫자만 제거하는 예제입니다. removeIf()에 람다 표현식으로 조건을 전달하였습니다. 결과를 보면 조건에 부합(true)하는 3, 6, 9가 제거되었습니다.

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));
System.out.println("numbers: " + numbers.toString());

numbers.removeIf(n -> (n % 3 == 0));
System.out.println("numbers(after remove): " + numbers.toString());

결과

numbers: [1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers(after remove): [1, 2, 4, 5, 7, 8]

참고