JAVA List 조건 삭제 람다식 removeIf 사용 방법

Java8부터 사용할 수 있는 람다식을 이용해 List에 있는 값을 삭제할 수 있습니다.

람다식과 removeIf을 사용하면 조건과 일치하는 값만 List에서 삭제할 수 있습니다.

List에서 조건과 일치하는 값을 삭제해야 하는 경우 for문과 if문을 사용해 삭제하는 경우가 많습니다.

하지만 람다식과 removeIf을 사용하면 for문과 if문을 사용하지 않고 원하는 조건의 값만 List에서 삭제할 수 있습니다.

 

샘플을 보면서 사용 방법을 확인해보겠습니다.

import java.util.ArrayList;
import java.util.List;
 
public class Main {
 
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("White");
        names.add("Yellow");
        names.add("Red");
        names.add("Blue");
        names.add("Black");
     
        // 삭제전 모든 요소 출력
        System.out.println(names);
     
        // 리스트에서 문자열 길이가 5보다 큰 값을 삭제
        names.removeIf(name -> name.length() > 5);
     
        // 삭제후 요소를 출력
        System.out.println("---------------------------");
        System.out.println(names);
    }
 
}

 

결과

[White, Yellow, Red, Blue, Black]
---------------------------
[White, Red, Blue, Black]

 

샘플 코드에서는 List형 객체 names에 문자열을 추가해 샘플 데이터를 준비했습니다.

removeIf메서드의 인수로 지정하는 람다식에서는 names의 각각의 요소를 변수명 name으로 참조하고 있습니다.

샘플 코드에서 볼 수 있듯이 람다식에서는 변수의 데이터형 지정을 생략할 수 있습니다.

샘플에서는 String형의 지정이 생략했습니다.

변수 name에는 length메서드를 사용해서 문자열 길이를 취득하고 있습니다.

그리고 문자열의 길이가 5보다 큰 경우에는 요소를 삭제하도록 조건을 지정했습니다.

for문과 if문을 사용해 하나씩 값을 취득해 처리를 할 수도 있지만 람다식과 removeIf을 사용해 소스를 간결하게 작성할 수도 있습니다.

댓글