Java8 List相关操作

1.//差值1.需要新增(即存在于entityDto.getContainerInfoList(),不在list里面的需要新增)
            newOrderContainerInfoDtoList =
                    containerInfoList.stream().filter(item -> !list.stream().map(OrderContainerInfoDto::getContainerModelCode).collect(                       Collectors.toList()).contains(item.getContainerModelCode())).collect(Collectors.toList()); 
 
 
 
2.//差值2.需要删除(即存在于list,不在entityDto.getContainerInfoList()里面的需要删除)
            deleteOrderContainerInfoDtoList =
                    list.stream().filter(item -> !containerInfoList.stream().map(OrderContainerInfoDto::getContainerModelCode).collect(                Collectors.toList()).contains(item.getContainerModelCode())).collect(Collectors.toList());

3.//求两个list差值:即存在于list1,不在list2里面的差值
List<Object> list1 = [{Object}];
List<Object> list2 = [{Object}];
List<Object> diffList = list1.stream().filter(item -> !list2.stream().map(Object::getId).collect(Collectors.toList()).contains(item.getId())).collect(Collectors.toList());
				

							
4.//查找list中对象属性,并转化为List							
List<String> collect = dictionaryCacheList.stream().map(ParamDto::getCode).collect(Collectors.toList());


5.//对list进行分组
Map<Long, List<TmsOrderDetailTmp>> tmsOrderDetailTmpSkuMap =
			tmsOrderDetailNewTmpList.stream().collect(Collectors.groupingBy(n -> n.getSkuId()));

6.//list分组求count
Map<Long, Long> countMap = list.stream().collect(Collectors.groupingBy(Dto::getBiddingId, Collectors.counting()));
			
7.//两个list,根据某一属性求交集
List<User> result = list1.parallelStream().map( user ->{
	User user1 = list2.stream().filter(u -> u.getId().equals(user.getId())).findFirst().orElse(null);
	if(null != user1){
		user.setName(user1.getName());
	}
	return user;
}).collect(Collectors.toList());


8.//查询List〈String〉是否包含另一个List〈String〉
boolean resultBoolean = true;
for (String s : serviceList) {
    boolean contains = COPY_SERVICE.contains(s);

//如果有一个不包含在list COPY_SERVICE中,则为false
    if (!contains) {
        resultBoolean = false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值