java8 多条件过滤、去重

Jasmine ·
更新时间:2024-11-10
· 870 次阅读

1、java8多条件过滤事例:

// 筛选短信黑名单数据 List smsBlackListSet = allBlacklist.stream().filter(sms -> (sms.getCorpcode().equals(corpCode) && sms.getBltype().equals(MessageTypeEnum.SMS.getKey()) && sms.getSvrtype().equals(bus))).collect(Collectors.toList());

// 解释:本次对allBlacklist集合过滤条件三个:sms.getCorpcode(),sms.getBltype(),sms.getSvrtype()。

              过滤判断条件是布尔类型的,所以多个条件的连接需要用&&(与) 、|| (或)连接符连接起来。最后筛选出符合条件的数据。

2、java8多条件分组事例:

// 对黑名单根据corpcode 和 bltype进行分组 Map<String,Map<Integer,List>> smsBlackListMap = allBlacklist.stream().collect(Collectors.groupingBy(PbListBlack::getCorpcode,Collectors.groupingBy(PbListBlack::getBltype)));

// 解析:bltype为Integer类型,corpcode为String类型。

               我们处理方式,1.先用bltype进行分组,得到一个Map<Integer,List>;  如: Collectors.groupingBy(PbListBlack::getBltype))

                                            2、再用corpcode进行分组,得到Map<String,Map<Integer,List>>。如Collectors.groupingBy(PbListBlack::getCorpcode,Collectors.groupingBy(PbListBlack::getBltype))


作者:wanyuanshi



java8 JAVA

需要 登录 后方可回复, 如果你还没有账号请 注册新账号