1.先创建一个测试用的User类,采用builder模式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12package com.example.demo.models; import lombok.Builder; import lombok.Getter; @Builder @Getter public class User { public long id; public String name; public int age; public String job; }
2.编写测试类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65package com.example.demo; import com.example.demo.models.User; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.*; import java.util.stream.Collectors; @SpringBootTest class DemoApplicationTests { @Test void contextLoads() { } static List<User> list = new ArrayList(); static { list.add(User.builder().id(1).name("赵一").age(20).job("teacher").build()); list.add(User.builder().id(2).name("钱二").age(30).job("policeman").build()); list.add(User.builder().id(3).name("孙三").age(40).job("teacher").build()); list.add(User.builder().id(4).name("李四").age(50).job("policeman").build()); list.add(User.builder().id(5).name("周五").age(60).job("teacher").build()); list.add(User.builder().id(6).name("吴六").age(60).job("policeman").build()); list.add(User.builder().id(7).name("郑七").age(70).job("teacher").build()); list.add(User.builder().id(8).name("王八").age(80).job("teacher").build()); list.add(User.builder().id(9).name("冯九").age(90).job("policeman").build()); list.add(User.builder().id(10).name("陈十").age(100).job("teacher").build()); } @Test void lambdaTest() { //分组 //按用户职业分组 Map<String, List<User>> groupList = list.stream().collect(Collectors.groupingBy(User::getJob)); //过滤 //获取年龄大于53岁的人 List<User> filterList = list.stream().filter(u -> u.getAge() > 53).collect(Collectors.toList()); //map //获取所有有用户的id List<Long> mapList = list.stream().map(User::getId).collect(Collectors.toList()); //排序 //通过sort对单字段多字段进行排序 //正序 list.sort(Comparator.comparing(User::getAge)); //倒序 list.sort(Comparator.comparing(User::getAge, ((o1, o2) -> o2.compareTo(o1)))); //先按年龄正序,在按id倒序 list.sort(Comparator.comparing(User::getAge).thenComparing(User::getId, ((o1, o2) -> o2.compareTo(o1)))); //获取用户id并倒序排序 List<Long> idList = list.stream().map(User::getId).sorted(((o1, o2) -> o2.compareTo(o1))).collect(Collectors.toList()); //去重 //通过distinct 按job去重 List<String> distincList = list.stream().map(User::getJob).distinct().collect(Collectors.toList()); //求和 int sum = list.stream().mapToInt(User::getAge).sum(); //最值 int minage = list.stream().map(User::getAge).min(Integer::compareTo).get(); int maxage = list.stream().map(User::getAge).max(Integer::compareTo).get(); //循环 list.stream().forEach(u -> u.job = "IT"); //获取键值对 Map<String, String> map = new HashMap<>(); map.put("张三", "20"); map.put("李四", "30"); map.entrySet().forEach(t -> { System.out.println(t.getKey() + "," + t.getValue()); }); } }
最后
以上就是稳重世界最近收集整理的关于lambda表达式常用语法的全部内容,更多相关lambda表达式常用语法内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复