lambda表达式

目录

1、为什么引入lambda表达式

2、lambda表达式形式

3、lambda表达式优缺点

4、lambda的应用示例

1、为什引入lambda表达式:

    lambda是一个可以传递的代码块,可以在以后执行一次或多次。lambda表达式允许把函数作为一个方法的参数(函数作为参数传递进方法中)

2、lambda表达式形式

    一般形式为:参数,箭头(->)以及一个表达式。如果代码任务无法在一个表达式汇总表达,需要将代码放在{}中

(String first,String second)->{
    if(first.length()<second.length())
        return -1;
    else if(first.length()>second.length())
        return 1;
    else return 0;
}

    如果lambda表达式没有参数,也必须提供空括号,类似于无参方法:

()->{
    for(int i=0;i<10;i++){
        System.out.println(i);
    }
}

    如果lambda表达式可以推导出参数类型,可以不再声明类型 :

Comparator<String> comp=(first,second)->{
    first.length()-second.length();
}

    如果方法只有一个参数,而且这个参数的类型可以推导出来,也可以连括号都省略:

ActionListener listener=event->System.out.println("The time is"+new Date());

    lambda表达式也可以不声明返回类型,lambda表达式的返回类型总是可以由上下文推导得出:

(String first,String second)->first.length()-second.length()
//这个表达式可以在需要int类型结果的上下文中使用

 

3、lambda表达式的优缺点

优点:1、简洁  2、非常容易并行计算  3、可能代表未来的编程趋势

缺点:1、如果不用并行计算,lambda表达式的计算速度一般不如for循环快(并行计算有时候也需要预热才会显示出效率优势)

           2、不容易调试

           3、如果其他人也没学过lambda表达式,代码不容易让其他语言的程序员看懂

4、lambda应用示例

import java.util.*;
public class mapentry {
    public static void main(String[] args){
        HashMap<Integer,Integer> map=new HashMap<>();
        for(int i=0;i<10;i++){
            map.put(i,i);
        }

        //这是一个用lambda表达式遍历map的示例
        System.out.println("lambda");
        map.forEach((Key,value)->{
            System.out.println(Key+":"+value);
        });
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值