前言:
1、java开发中常见的集合是list、对list的各类操作:分组、排序、转换、求和;
list转stream对象、再进行集合操作、一行代码解决目的。
2、java开发中常见的问题就是空指针,每次null校验都会显得非常冗余;
可以用optional类接收出参,null校验一步到位。
直接上案例
1、list转map:
public class User{
private string name;
private string sex;
}
List<User> userList = new ArrayList<>();
Map<String,User> userMap = userList.stream
.collect(Collectors.toMap(User::getName,user -> user,(old,now) -> now));
解释:User类元素的集合userList转为map,list中每组元素的name作为key,User元素作为value,key重复时的替换规则是以最新的User作为value。
类似的集合遍历工作都可以转stream后,一行代码解决问题。
2、optional校验
public class User{
private string name;
private string sex;
public void doAct(){
System.out.println(name);
}
}
List<User> userList = getUserList;
Optional.ofNullable(userList)
.ifPresent(userList -> userList.foreach(user -> user.doAct()));
userList = Optional.ofNullable(userList)
.orElse(new ArrayList<>());
解释:Optional接收对象userList 后,userList不为null,则ifPresent方法以userList 为参数进行后续操作;或者userList为null时,以orElse返回新对象;