![Java8中 List的去重、过滤、映射、分组、统计、分页](https://img.wangcx.cn/LightPicture/2022/09/070bd601d3c6a951.jpg?key=469859)
1年前
List对象集合的简单去重
list = list.stream().distinct().collect(Collectors.toList());
List集合的根据属性(name)去重
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(Student::getName))), ArrayList::new));
List对象集合的简单过滤(过滤为 null 的对象)
list = list.stream().filter(item -> item.getName() != null).collect(Collectors.toList());
List对象集合中获取其中某一属性(weight)的List集合
List<Double> collect = apples.stream().map(Apple::getWeight).collect(Collectors.toList());
List对象集合转换为逗号连接的字符串
String str = list.stream().map(String::valueOf).collect(Collectors.joining(","));
List对象集合中根据对象(Apple)的某一属性(color)进行分组
Map<String, List<Apple>> applesByColor = apples.stream().collect(Collectors.groupingBy(Apple :: getColor));
List对象集合中求和、最大、最小、平均的统计(mapToDouble())
//和
double sum = apples.stream().mapToDouble(Apple::getWeight).sum();
//最大
OptionalDouble max = apples.stream().mapToDouble(Apple::getWeight).max();
//最小
OptionalDouble min = apples.stream().mapToDouble(Apple::getWeight).min();
//平均值
OptionalDouble average = apples.stream().mapToDouble(Apple::getWeight).average();
List对象集合的分页(skip()+limit())
List<User> resultList = list.stream().skip(pageSize * (currentPage - 1)).limit(pageSize).collect(Collectors.toList());
-
TJBDNnWYAEFcKyO 5月15日此条为悄悄话,仅发布者可见
-
TJBDNnWYAEFcKyO 5月15日此条为悄悄话,仅发布者可见
-
mldSjXtL 5月12日此条为悄悄话,仅发布者可见
-
mldSjXtL 5月12日此条为悄悄话,仅发布者可见
-
mldSjXtL 5月12日此条为悄悄话,仅发布者可见
-
mldSjXtL 5月12日此条为悄悄话,仅发布者可见
-
yXfCjlmpnQzLKJZ 5月2日此条为悄悄话,仅发布者可见
-
yXfCjlmpnQzLKJZ 5月2日此条为悄悄话,仅发布者可见
-
nzulyThZOMc 4月29日此条为悄悄话,仅发布者可见
-
nzulyThZOMc 4月29日此条为悄悄话,仅发布者可见
-
nzulyThZOMc 4月29日此条为悄悄话,仅发布者可见
-
cVaQqfpAYmh 4月22日此条为悄悄话,仅发布者可见
-
cVaQqfpAYmh 4月22日此条为悄悄话,仅发布者可见
-
cVaQqfpAYmh 4月22日此条为悄悄话,仅发布者可见
-
cVaQqfpAYmh 4月22日此条为悄悄话,仅发布者可见
-
vWlsZxyEM 4月17日此条为悄悄话,仅发布者可见
-
vWlsZxyEM 4月17日此条为悄悄话,仅发布者可见
-
vWlsZxyEM 4月17日此条为悄悄话,仅发布者可见
-
vWlsZxyEM 4月17日此条为悄悄话,仅发布者可见
-
DjVqRlkfimZ 4月7日此条为悄悄话,仅发布者可见
- 1
- 2
- 3
- >