SeouliteLab

[Java/자바] 특정 조건으로 리스트 필터링하는 3가지 방법 본문

프로그래밍

[Java/자바] 특정 조건으로 리스트 필터링하는 3가지 방법

Seoulite Lab 2024. 3. 7. 09:04

Java에서는 리스트의 요소를 특정 조건에 따라 필터링하는 작업이 자주 필요합니다. 이를 위해 여러 가지 방법이 있으며, 아래에서는 리스트를 필터링하는 세 가지 방법을 예제와 함께 살펴보겠습니다.

예제 1: 기본 for 루프를 사용한 필터링

import java.util.ArrayList;
import java.util.List;

public class FilteringExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            numbers.add(i);
        }
        
        List<Integer> evenNumbers = new ArrayList<>();
        for (int number : numbers) {
            if (number % 2 == 0) {
                evenNumbers.add(number);
            }
        }
        
        System.out.println("짝수: " + evenNumbers);
    }
}

위 예제는 기본적인 for 루프를 사용하여 리스트를 필터링하는 방법입니다. 주어진 리스트에서 짝수만 추출하여 새로운 리스트를 만듭니다.

예제 2: Stream API를 사용한 필터링

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class FilteringExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            numbers.add(i);
        }
        
        List<Integer> evenNumbers = numbers.stream()
                                             .filter(number -> number % 2 == 0)
                                             .collect(Collectors.toList());
        
        System.out.println("짝수: " + evenNumbers);
    }
}

Java 8부터는 Stream API를 사용하여 간단하게 리스트를 필터링할 수 있습니다. filter() 메서드를 사용하여 주어진 조건에 따라 요소를 필터링한 후, collect() 메서드로 필터링된 요소를 리스트로 수집합니다.

예제 3: Apache Commons Collections 라이브러리를 사용한 필터링

import org.apache.commons.collections4.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

public class FilteringExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            numbers.add(i);
        }
        
        List<Integer> evenNumbers = new ArrayList<>(CollectionUtils.select(numbers, number -> number % 2 == 0));
        
        System.out.println("짝수: " + evenNumbers);
    }
}

Apache Commons Collections 라이브러리의 CollectionUtils 클래스를 사용하여 리스트를 필터링하는 방법입니다. select() 메서드를 사용하여 주어진 조건에 따라 요소를 필터링한 후, 새로운 리스트로 복사합니다.