1、给List<Map> 里面取出最小值最大值 返回某个字段
String dateMin = listMap.stream().min(Comparator.comparing(e->e.get("date "))).get().get("date ");
String dateMax= listMap.stream().max(Comparator.comparing(e -> e.get("date"))).get().get("date");
2、给List<Map> 里面取出最小值最大值 返回某个对象
Map mapMin = listMap.stream().min(Comparator.comparing(e->e.get("date "))).get();
Map mapMax= listMap.stream().max(Comparator.comparing(e -> e.get("date"))).get();
3、获取List<Map>里面等于某个值的数据量
long caseNum = caseAlls.stream().filter(e -> caseVo.getTitle().equals(e.get("title"))).count();
5、获取集合中的的某个属性去重返回这个属性
List<String> postNames = postList.stream().map(User::getName).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
// 根据 name 属性去重
List<Person> distinctByName = personList.stream()
.collect(Collectors.toMap(Person::getName, p -> p, (p1, p2) -> p1))
.values()
.stream()
.collect(Collectors.toList());
6、根据集合中对象的id去重
// 根据id去重
List<User> unique = persons.stream().collect(
collectingAndThen(
toCollection(() -> new TreeSet<>(comparingLong(User::getId))), ArrayList::new)
);
List<User> disnProjects = projects.stream().filter(distinctByKey(User::getId)).collect(Collectors.toList());
6、根据条件然后给集合中一个或者多个属性去重
// 根据已知条件和 name 属性去重
List<Person> distinctByConditionAndProperty = personList.stream()
.filter(person -> person.getAge() >= 18) // 已知条件:年龄大于等于18
.collect(Collectors.toMap(
Person::getName,
person -> person,
(existing, replacement) -> existing
))
.values()
.stream()
.collect(Collectors.toList());