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;
}
}
Java8 List相关操作
于 2023-01-29 15:32:40 首次发布