空指针异常终结者:optional

本文展示了一个使用Java Stream API和Optional处理集合元素的示例,包括如何从学生列表中筛选分数并进行求和,以及如何优雅地处理Map中可能不存在的键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package optional;



import java.util.*;

public class Test {
    public static void main(String[] args) {
        List<Student> stdudents = new ArrayList<Student>();
        Student student = new Student("liyu",70);
        Student student1 = new Student("liyu",80);
        stdudents.add(student);
        stdudents.add(student1);

       Optional<Integer> score= stdudents.stream()
                .map(Student::getScore)
                .filter(s-> s<60)
                .reduce((a,b)->a+b);


        System.out.println(score.orElse(0));


        Map<Integer,String> map= new HashMap<Integer,String>();
        map.put(1001,"篮球");
        map.put(1002,"足球");
        map.put(1003,"羽毛球");

        //获取key为1005的value
        System.out.println("a="+map.get(1005));
        Map<Integer,String> map1= new HashMap<Integer,String>();
        map1.put(1005,"篮球");

        //获取key为1005的value
        String a2= Optional.ofNullable(map.get(1005)).orElse("无");
        System.out.println("a2="+a2.toString());
        
        //如果Optional.ofNullable(map)里的map不为null,返回的结果为他本身,否则为map1
        Map<Integer,String> a1= Optional.ofNullable(map).orElse(map1);
        System.out.println("a1="+a1.toString());

    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值