java8 lambda表达式应用

346 查看

这篇文章适合又一定编程经验的人阅读。
lambda是已经出了很久的概念,而最近项目使用的是java8,所以我想顺道学学java8的特性。基础的范例文章网上一大把,可是实际应用的上的寥寥无几,毕竟我们有很多的逻辑需要处理,不仅仅是System.out。

场景:客户下了多个订单,我需要得到订单的总金额。
平时的话我们用for循环,将单价和数量乘积得到就可以了,但是在lambda里面呈现的是什么样的呢?下面我给大家一个别的文章并不会给出,但是绝对常用的例子:

    public static void main(String ...strings){
        //第一个订单,其他订单信息我就不写了
        OrderDetail od1= new OrderDetail();
        od1.setNumber(2);
        od1.setPrice(15.0F);
        //第二个订单
        OrderDetail od2= new OrderDetail();
        od2.setNumber(5);
        od2.setPrice(23.0F);
        //加入待统计的list中
        List<OrderDetail> list= Arrays.asList(od1,od2);
        //得到总额
        double total=list.stream().mapToDouble(od -> od.getNumber()*od.getPrice()).sum();
        System.out.println(total);
        
    }

啊啊啊,就是这么简单,但是别人却没这么写过,其实代码并不复杂,慢慢的你就理解了!