java 8 stream的使用

1.List中根据几个参数去去重

List<ProcessDimensionRelEntity> copyList =  list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
                new TreeSet<>(Comparator.comparing(o -> o.getBpdCode() + "#" + o.getDudCode() + "#" + o.getPermitValue()))), ArrayList::new));

if(list.size() != copyList.size()){
//说明有重复元素
}

2.List中取属性,封装为map

List<BizscopeProcessDefineEntity> bpdList = bizscopeProcessDefineService.selectList(bizscopeProcessDefineEntity);
Map<String,String> bpdMap = bpdList.stream().collect(Collectors.toMap(BizscopeProcessDefineEntity::getBpdCode,BizscopeProcessDefineEntity::getBpdName));
//指定key-value,value是对象本身
Map<String,BizscopeProcessDefineEntity> bpdMap2 = bpdList.stream().collect(Collectors.toMap(BizscopeProcessDefineEntity::getBpdCode,BizscopeProcessDefineEntity->BizscopeProcessDefineEntity));
//指定key-value,value是对象本身,Function.identity()是简洁写法,也是返回对象本身
Map<String,BizscopeProcessDefineEntity> bpdMap2 = bpdList.stream().collect(Collectors.toMap(BizscopeProcessDefineEntity::getBpdCode,Function.identity()));

3.List中取属性,封装为list

List<String> permitValueList = list.stream().map(ProcessDimensionRelEntity :: getPermitValue)
                .collect(toList());

4.取俩集合List的交集

List<String> intersection = permitValueList.stream().filter(item -> permitValueListDB.contains(item)).collect(toList());

5.取俩集合List的差集permitValueList- intersection

 List<String> addList = permitValueList.stream().filter(item -> !intersection.contains(item)).collect(toList());

6.list -> Integer[]


Integer[] ids = pdrIds.toArray(new Integer[0]);
  1. Integer[] -> list
List<Integer> pdrIdList  = new ArrayList<>(Arrays.asList(pdrIds));

8.在list中根据字段分组,存储为Map《list》

List<DomainDefineDto> defineDtoList = domainDefineDao.findForList(domainDefineDto);
Map<String,List<DomainDefineDto>> defineDtoMap = new HashMap<>();
for(DomainDefineDto ddefine : defineDtoList){
	String domainKey = ddefine.getDomainKey();
	if (defineDtoMap.keySet().contains(domainKey)) {
		defineDtoMap.get(domainKey).add(ddefine);
	}else{
		List<DomainDefineDto> ddfList = new ArrayList<>();
		ddfList.add(ddefine);
		defineDtoMap.put(domainKey,ddfList);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值