1.根据某一项去重
List<String> collect = contactRelationList.stream().map(ContactRelation::getRelPersonId).distinct().collect(Collectors.toList());
2.多条件去重
List<ContactMethod> collect1 = contactMethodList1.stream().
collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getType() + ";" + o.getContactInfo()))), ArrayList::new));
3.list转map
// 联系人转以id为key,名称为value的map
Map<String, String> contactMap = contactList.stream().collect(Collectors.toMap(Contact::getId, Contact::getContact));
4. 以某一个条件做字符串逗号拼接
String pointPositionId = pointPositionList.stream().map(PointPosition::getId).collect(Collectors.joining(","));
5.使用Stream流把list1和list2根据属性menu合并一个list集合
// 使用Stream流把list1和list2根据属性menu合并一个list集合
List<QuotePlatformEntity> collect = platformList.stream().map(platform -> {
quoteCommercialCategoryEntities.stream().filter(commercialCategoryEntity -> Objects.equals(platform.getCategoryId(), commercialCategoryEntity.getId())).forEach(commercialCategory -> platform.setCategory(commercialCategory.getName()));
return platform;
}).collect(Collectors.toList());
6. 使用Stream流根据商业类别id分组
Map<String,List <QuotePlatformEntity>> collect1 = platformList.stream().collect(Collectors.groupingBy(QuotePlatformEntity::getCategoryId));
7.分组方式(根据对象中的某个字段的前6位):
Map<String, List<QuoteProjectEntity>> map = quoteProjectEntityList.stream().collect(
Collectors.groupingBy(
quoteProjectEntity-> quoteProjectEntity.getCode().substring(0, 6)
));
8.使用 stream 从 List 对象中获取某列数据
//使用 stream 从 List 对象中获取某列数据
List<String> collect = list.stream().map(Student::getName).collect(Collectors.toList())
9. 使用 stream 从 List 对象排序-升序
升序:
list.stream().sorted(Comparator.comparing(实体::get属性)).collect(Collectors.toList());
10.使用 stream 从 List 对象排序-降序
降序:
list.stream().sorted(Comparator.comparing(实体::get属性).reversed()).collect(Collectors.toList());
11. 一个list集合内有name,需要判断list中是否有name有叫张三的人,如果有返回true
list.stream().filter(m->m.getName().equals("张三")).findAny().isPresent();
12. (stream)从数组或集合中找到符合条件的就返回该对象
nodesVOList.stream().filter(e -> e.getId().equals(chanceStageModel.getContactId())).findAny().get()
13. list 就是 想要 转换的数组
//list 就是 想要 转换的数组
String[] title = list.stream().map(User::getName).toArray(String[]::new);
14.list根据某个字段去重之后依旧返回该list
Map<Object, Boolean> map = new HashMap<>();
reportList = reportList.stream().filter(i -> map.putIfAbsent(i.getId(), Boolean.TRUE) == null).collect(Collectors.toList());