php 通用过滤,Apache通用集合过滤对象

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 super T> predicate)

collection - 从中获取输入的集合可能不为null。

predicate - 用作过滤器的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 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()方法过滤列表

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

声明

以下是org.apache.commons.collections4.CollectionUtils.filterInverse()方法的声明 -

public static boolean filterInverse(Iterable collection,

Predicate super T> predicate)

参数

collection - 从中获取输入的集合,可能不为null。

predicate - 用作过滤器的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 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]

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值