Commons 컬렉션-개체 필터링

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

filter () 메서드

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

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.filter() 방법-

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

매개 변수

  • collection − 입력을받을 컬렉션은 null 일 수 없습니다.

  • predicate − 필터로 사용할 술어는 null 일 수 있습니다.

반환 값

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

다음 예는 org.apache.commons.collections4.CollectionUtils.filter()방법. 정수 목록을 필터링하여 짝수 만 가져옵니다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
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);
   }
}

산출

다음 결과가 생성됩니다-

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]

filterInverse () 메서드

CollectionUtils의 filterInverse () 메서드는 전달 된 조건자가 제공하는 조건을 충족하는 개체를 제거하기 위해 목록을 필터링하는 데 사용할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.filterInverse() 방법-

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

매개 변수

  • collection − 입력을받을 컬렉션은 null 일 수 없습니다.

  • predicate − 필터로 사용할 술어는 null 일 수 있습니다.

반환 값

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

다음 예는 org.apache.commons.collections4.CollectionUtils.filterInverse()방법. 홀수 만 얻기 위해 정수 목록을 필터링합니다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
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);
   }
}

산출

결과는 다음과 같습니다.

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]