需求:想要将List中实体的某个字段的值提取出来,组成新的List集合
List<DdsClasslibEntity> classlibInfo = classlibService.list(queryWrapper);
if (CollectionUtils.isNotEmpty(classlibInfo)) {
classlibCodes = classlibInfo.stream().map(x -> x.getClasslibCode()).collect(Collectors.toList());
}
需求:想要将List中实体的某个字段的值根据条件filter()提取出来,组成新的List集合
List<String> XXX =ddsDocumentEntityList.stream().map(xxxEntity::getxxx)
.filter(s -> s!=null).collect(Collectors.toList());
需求:想要将List中实体的根据条件filter()提取出来,组成新的List<实体>集合
List<XXXEntity> ddsDocumentLists = ddsDocumentEntitys.stream()
.filter(s -> s.getXXX()!=null).collect(Collectors.toList());
需求:根据某一属性,对对象集合List进行去重
// 查询数据
List<UserInfo> list = userInfoMapper.getList();
// 根据 姓名 去重
list = list.stream().filter(o -> o.getName() != null).collect(
Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(UserInfo::getName))), ArrayList::new));
需求:通过 Collectors.toMap() 实现根据某一属性去重:
// 查询数据
List<UserInfo> list = userInfoMapper.getList();
// 根据 姓名 去重
Map<String, UserInfo> collect = list.stream()
.collect(Collectors.toMap(UserInfo::getName, o -> o, (v1, v2) -> v1));
list = new ArrayList<>(collect.values());
需求:替换 null 为一个默认值,比如 -1
// 获取 姓名-年龄 映射
Map<String, Integer> nameMap = list.stream()
.collect(Collectors.toMap(User::getName, o -> Optional.ofNullable(o.getAge()).orElse(-1), (v1, v2) -> v1));