Post

Filtering Objects

1. filter() method (Apache Commons Collections)

CollectionUtils의 filter() 메서드를 사용하여 전달된 술어에 의해 제공된 조건을 충족하지 않는 개체를 제거하기 위해 목록을 필터링할 수 있다.

1) 선언

org.apache.commons.collections4.CollectionUtils.filter()

1
public static <T> boolean filter(Iterable<T> collection, Predicate<? super T> predicate)

2) Parameters

  • collection: 입력을 가져올 컬렉션은 null이 아닐 수 있다.

  • predicate: 필터로 사용할 술어가 null일 수 있다.

3) Return Value

이 호출에 의해 컬렉션이 수정되면 true이고, 그렇지 않으면 false이다.

4) filter() 예제

  • 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;

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

public class CollectionUtilsTester {
    public static void main(String[] args) {
        List<Integer> integerList = new ArrayList<Integer>();
        integerList.addAll(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));
        System.out.println("Original List: " + integerList);
        CollectionUtils.filter(integerList, new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer input) {
                if (input.intValue() % 2 == 0) {
                    return true;
                }
                return false;
            }
        });
        System.out.println("Filtered List (Even numbers): " + integerList);
    }
}
  • 결과
1
2
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]

2. filterInverse() method (Apache Commons Collections)

CollectionUtils의 filterInverse() 메서드를 사용하여 목록을 필터링하여 개체를 제거할 수 있으며, 이는 전달된 술어에 의해 제공된 조건을 충족한다.

1) 선언

org.apache.commons.collections4.CollectionUtils.filterInverse()

1
public static <T> boolean filterInverse(Iterable<T> collection, Predicate<? super T> predicate)

2) Parameters

  • collection: 입력을 가져올 컬렉션은 null이 아닐 수 있다.

  • predicate: 필터로 사용할 술어가 null일 수 있다.

3) Return Value

이 호출에 의해 컬렉션이 수정되면 true이고, 그렇지 않으면 false입니다.

4) filterInverse() 예제

  • 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;

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

public class CollectionUtilsTester {
    public static void main(String[] args) {
        List<Integer> integerList = new ArrayList<Integer>();
        integerList.addAll(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));
        System.out.println("Original List: " + integerList);
        CollectionUtils.filterInverse(integerList, new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer input) {
                if (input.intValue() % 2 == 0) {
                    return true;
                }
                return false;
            }
        });
        System.out.println("Filtered List (Odd numbers): " + integerList);
    }
}
  • 결과
1
2
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.