Stream流的各种用法(实用眼)

目录

用stream实现计算list的指定某个属性值的个数

用stream实现按某个属性值进行分组

用stream判断list里面是否存在符合条件的值


  • 用stream实现计算list的指定某个属性值的个数

举个例子:

coverageDetailList{

CoverageDetail{ base_url='/a/b/c/d',   batchName=test', covered_by_url='/a/b/c/d'};

CoverageDetail{ base_url='/a/b/d',   batchName=test', covered_by_url=null};

CoverageDetail{ base_url='/a/b/e',   batchName=test', covered_by_url=null};

CoverageDetail{ base_url='/a/b/u',   batchName=test', covered_by_url=null};

}

我想要计算这个coverageDetailList里面 covered_by_url=null 的有多少个。

coverageDetailList.stream().filter(coverageDetail -> Objects.isNull(coverageDetail.getCovered_by_url())).count()
  • 用stream实现按某个属性值进行分组

举个例子:

coverageDetailList{
CoverageDetail{ application='AAA',  base_url='/a/b/c/d','covered_by_url='/a/b/c/d'};
CoverageDetail{ application='AAA', base_url='/a/b/c','covered_by_url='/a/b/c'};
CoverageDetail{ application='AAA', base_url='/a/c/d/s','covered_by_url=null};
CoverageDetail{ application='BBB', base_url='/b/c/d/e','covered_by_url='/b/c/d/e'};
CoverageDetail{ application='CCC', base_url='/c/d/e','covered_by_url='/c/d/e'};
}

我想要按application进行分组,变成以下这样:

key:'AAA', value:[CoverageDetail{ application='AAA', base_url='/a/b/c/d','covered_by_url='/a/b/c/d'};CoverageDetail{ application='AAA', base_url='/a/b/c','covered_by_url='/a/b/c'};CoverageDetail{ application='AAA', base_url='/a/c/d/s','covered_by_url=null};]

key:'BBB', value:[CoverageDetail{ application='BBB', base_url='/b/c/d/e','covered_by_url='/b/c/d/e'};]

key:'CCC', value:[CoverageDetail{ application='CCC', base_url='/c/d/e','covered_by_url='/c/d/e'};]

 Map<String, List<CoverageDetail>> coverageDetailDomainList =
                coverageDetailList.stream().collect(Collectors.groupingBy(CoverageDetail::getApplication));
  • 用stream判断list里面是否存在符合条件的值

whitelistItems.stream().anyMatch(whiteListItem -> application.equalsIgnoreCase(whiteListItem.getApplication()));

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值