Commons-collections-filtering-objects
コモンズコレクション-オブジェクトのフィルタリング
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]