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]