java,List的stream操作,Optional类的使用

前言:

        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返回新对象;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值