Apache Commons Collections库的CollectionUtils类为常见操作提供了各种实用方法,涵盖了广泛的用例.它有助于避免编写样板代码.这个库在jdk 8之前非常有用,因为现在在Java 8的Stream API中提供了类似的功能.
使用filter()方法过滤列表
CollectionUtils的filter()方法可用于过滤列表以删除不满足谓词传递提供的条件的对象.
声明
以下是
的声明
org.apache.commons.collections4.CollectionUtils.filter()方法 :
public staticboolean filter(Iterable collection, Predicate super T> 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) { ListintegerList = 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) { ListintegerList = 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]