list排序:
list.sort(Comparator.comparing(String::valueOf));
userList.sort(Comparator.comparing(user::getUserName));// (对象:属性)
1
2
Comparator.comparing的默认排序是正序排列,要想倒序:.reversed()
list.sort(Comparator.comparing(String::valueOf).reversed());
AuditBOS.sort(Comparator.comparing(AuditBO::getAuditTime).reversed());
1
2
forEach:遍历;
list.stream().forEach(e -> {
…
});
1
2
3
4
5
list转换: 数组转换为list;
Stream.of(arrays).collect(Collectors.toList());
1
2
3
skip: 返回一个丢弃原Stream的前N个元素后剩下元素组成的新Stream, 如果原Stream中包含的元素个数小于N,那么返回空Stream;
list.stream().skip(index).collect(Collectors.toList());
1
limit: 对一个Stream进行截断操作,获取其前N个元素,如果原Stream中包含的元素个数小于N,那就获取其所有的元素;
list.stream().limit(index).collect(Collectors.toList());
1
match: 检测指定的Predicate是否匹配整个Stream。所有的匹配操作都是最终操作,并返回一个boolean类型的值;
list.stream().anyMatch(str -> str.startsWith("a"));
list.stream().allMatch(str -> str.startsWith("a"));
list.stream().noneMatch(str ->str.startsWith("a"));
1
2
3
4
5
distinct:对于Stream中包含的元素进行去重操作(去重逻辑依赖元素的equals方法),新生成的Stream中没有重复的元素;
list.stream().distinct().collect(Collectors.toList());
1
map: 对于Stream中包含的元素使用给定的转换函数进行转换操作,新生成的Stream只包含转换生成的元素。这个方法有三个对于原始类型的变种方法,分别是:mapToInt,mapToLong和mapToDouble。这三个方法也比较好理解,比如mapToInt就是把原始Stream转换成一个新的Stream,这个新生成的Stream中的元素都是int类型。之所以会有这样三个变种方法,可以免除自动装箱/拆箱的额外消耗;
List<Student> students =
list.stream().map(person -> new Student(person.getName(), person.getAge())).collect(Collectors.toList());
List<String> names = list.stream().map(Person::getName).collect(Collectors.toList());
int[] ages = list.stream().mapToInt(Person::getAge).toArray();
1
2
3
4
5
6
filter:过滤;
过滤出年龄大于19的人:
list.stream().filter(person -> (person.getAge() > 19)).collect(Collectors.toList());
1
2
3
group:分组;
按年龄分组:
list.stream().collect(Collectors.groupingBy(Person::getAge)).forEach(
(age, personList) -> {
personMap.put(age, personList);
}
);
多条件排序:
list.sort(Comparator.comparing(Person::getAge).thenComparing(Person::getName));
1
count:计数;
统计年龄大于19的人的数量:
long count = list.stream().filter(person -> (person.getAge() > 19)).count();
1
2
3
sum:求和;
计算年龄总和:
int sum = list.stream().mapToInt(Person::getAge).sum();
1
2
3
max 和 min;
list.stream().max((num1, num2) -> num1.compareTo(num2)).get();
list.stream().min((num1, num2) -> num1.compareTo(num2)).get();
————————————————
版权声明:本文为CSDN博主「syrain丶华思雨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42040802/article/details/88740733