private String name; //姓名
private Integer age; //年龄
private Integer departId; //所属部门id
}
List list = new ArrayList<>();
复制代码
简单遍历
使用lamada表达式之前,如果需要遍历list时,一般使用增强for循环,代码如下:
List list = new ArrayList<>();
for (User u:list) {
System.out.println(u.toString());
}
复制代码
使用lamada表达式之后,可以缩短为一行代码:
list.forEach(u-> System.out.println(u.toString()));
复制代码
筛选符合某属性条件的List集合
以筛选年龄在15-17之间的用户为例,for循环写法为:
List users = new ArrayList<>();
for (User u : list) {
if (u.getAge() >= 15 && u.getAge() <= 17) {
users.add(u);
}
}
复制代码
使用lamada表达式写法为:
List users = list.stream()
.filter(u -> u.getAge() >= 15 && u.getAge() <= 17)
.collect(Collectors.toList());
复制代码
获取某属性返回新的List集合
以获取id为例,项目中有时候可能会需要根据用户id的List进行查询或者批量更新操作,这时候就需要用户id的List集合,for循环写法为:
List ids = new ArrayList<>();
for (User u:list) {
ids.add(u.getId());
}
复制代码
lamada表达式写法为:
List ids = list.stream()
.map(User::getId).collect(Collectors.toList());
复制代码
获取以某属性为key,其他属性或者对应对象为value的Map集合
以用户id为key(有时可能需要以用户编号为key),以id对应的user作为value构建Map集合,for循环写法为:
Map<Integer,User> userMap = new HashMap<>();
for (User u:list) {
if (!userMap.containsKey(u.getId())){
userMap.put(u.getId(),u);
}
}
复制代码
lamada表达式写法为:
Map<Integer,User> map = list.stream()
.collect(Collectors.toMap(User::getId,
Function.identity(),
(m1,m2)->m1));
复制代码
Function.identity()返回一个输出跟输入一样的Lambda表达式对象,等价于形如t -> t形式的Lambda表达式。
(m1,m2)-> m1此处的意思是当转换map过程中如果list中有两个相同id的对象,则map中存放的是第一个对象,此处可以根据项目需要自己写。
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
个对象,此处可以根据项目需要自己写。
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
[外链图片转存中…(img-yfTu0uaY-1719492102286)]