- 共享收藏教程
- 共享收藏 - 主页
- Commons Collections - 概述
- Commons Collections - 环境设置
- Commons Collections - 包接口
- Commons Collections - BidiMap 接口
- Commons Collections - MapIterator 接口
- Commons Collections - OrderedMap 接口
- Commons Collections - 忽略 Null
- Commons Collections - 合并和排序
- Commons Collections - 转换对象
- Commons Collections - 过滤对象
- Commons Collections - 安全空支票
- 共享收藏 - 包容性
- 共享收藏 - 交叉口
- Commons Collections - 减法
- 下议院收藏 - 联盟
- 共享馆藏资源
- 共享收藏 - 快速指南
- Commons Collections - 有用的资源
- 共享收藏 - 讨论
Commons Collections - 过滤对象
Apache Commons Collections 库的 CollectionUtils 类为涵盖广泛用例的常见操作提供了各种实用方法。它有助于避免编写样板代码。该库在 jdk 8 之前非常有用,因为 Java 8 的 Stream API 现在提供了类似的功能。
过滤器()方法
CollectionUtils 的 filter() 方法可用于过滤列表以删除不满足所传递谓词提供的条件的对象。
宣言
以下是声明
org.apache.commons.collections4.CollectionUtils.filter()方法 -
public static <T> boolean filter(Iterable<T> collection, Predicate<? super T> predicate)
参数
集合- 从中获取输入的集合不能为空。
predicate - 用作过滤器的谓词可以为空。
返回值
如果此调用修改了集合,则为 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)
参数
集合- 从中获取输入的集合不能为空。
predicate - 用作过滤器的谓词可以为空。
返回值
如果此调用修改了集合,则为 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]