开发手册 欢迎您!
软件开发者资料库

Commons Collections - 过滤对象

Apache Commons Collections过滤对象 - 从简单和简单的步骤学习Apache Commons Collections,从基本到高级概念,包括概述,环境设置,Bag,BidiMap,MapIterator,OrderedMap,Ignore Null,Merge and Sort,Transforming,Filtering Objects,Safe空检查,包含,交集,减法,联盟。

Apache Commons Collections库的CollectionUtils类为常见操作提供了各种实用方法,涵盖了广泛的用例.它有助于避免编写样板代码.这个库在jdk 8之前非常有用,因为现在在Java 8的Stream API中提供了类似的功能.

使用filter()方法过滤列表

CollectionUtils的filter()方法可用于过滤列表以删除不满足谓词传递提供的条件的对象.

声明

以下是


的声明

org.apache.commons.collections4.CollectionUtils.filter()方法 :

public static  boolean filter(Iterable collection,   Predicate predicate)


参数

  • 集合 : 从中获取输入的集合可能不为空.

  • 谓词 : 用作过滤器的谓词可以为空.

返回值

如果为真,则为真该调用修改了该集合,否则为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 integerList = new ArrayList();      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));      System.out.println("Original List: " + integerList);      CollectionUtils.filter(integerList, new Predicate() {                  @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()方法过滤列表

filterInverse()方法CollectionUtils可用于过滤列表以删除满足谓词传递所提供条件的对象.

声明

以下是的声明或者.gap. boolean filterInverse(Iterable< T> collection,
Predicate<?super T>谓词)

参数

  • 集合 : 从中获取输入的集合可能不为空.

  • 谓词 : 用作过滤器的谓词可以为空.

返回值

如果为真,则为真该调用修改了该集合,否则为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 integerList = new ArrayList();      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));      System.out.println("Original List: " + integerList);      CollectionUtils.filterInverse(integerList, new Predicate() {                  @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]