Java新特性——Lambda表达式(函数编程)


Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。

Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

使用 Lambda 表达式可以使代码变的更加简洁紧凑

很多人不知道如何去使用Lambda表达式,下面是我做的总结:

使用方法
/**
         * Lambda表达式套用公式
         * 方法省略掉,替换为 ->
         * 参数只有一个时,可以省略 (),没有参数不能省略()
         * 方法体只有一行时,可以省略 {}
         * 函数体只有一行,并且有返回值时,如果省略了{},必须省略 return
         */

先来看一下他的简化过程

        //属于匿名内部类的写法
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                System.out.println("执行了子线程...");
            }
        };

        //箭头函数
        Runnable runnable1 = ()->{
            System.out.println("执行了子线程1...");
        };

        Runnable runnable2 = () -> System.out.println("执行了子线程2...");

        //jdk8的lombda表达式是类似es6的新语法  ECMAScript  ES5

        //lambda表达式的使用
        new Thread(() -> System.out.println("执行了子线程2...")).start();

    }
使用Comparator 进行排序
  public static void main(String[] args) {
        //Comparator  跟排序  分组相关

        Comparator<String> comparator = new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o1.length();
            }
        };

        Comparator<String> comparator1 = (String o1, String o2)->{
            return o1.length()-o1.length();
        };

        Comparator<String> comparator2 = ( o1, o2)->{
            return o1.length()-o1.length();
        };

        Comparator<String> comparator3 = ( o1, o2)-> o1.length()-o1.length();
    }
遍历集合的方式
 public static void main(String[] args) {
        List<String> students = Arrays.asList("许","李","温","唐");

        //遍历集合的方式
        for (int i = 0;i<students.size();i++){
            System.out.println(students.get(i));
        }
		//foreach遍历集合方式
        for(String name : students){
            System.out.println(name);
        }

        /*jdk8提供的循环方式*/
        students.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
		//简化过后
        students.forEach((String s)->{
            System.out.println(s);
        });
		//再度简化
        //students.forEach(s->System.out.println(s));

        //超级简化版本
        students.forEach(System.out::println);

        //::代表这Java8中的方法引用
    }
遍历map集合
public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
		//按照之前的方式区遍历map集合
        //1.通过for
        //2.可以使用迭代器
        //3.Entry...

        //jdk8
        map.forEach(new BiConsumer<String, String>() {
            @Override
            public void accept(String key, String value) {
                System.out.println("Key: "+key+"-----> value:"+value);
            }
        });
		//简化过后
        map.forEach((key, value)-> System.out.println("Key: "+key+"-----> value:"+value));
    }

这样我们可以看到jdk8给我们提供的这个方法,极大的简略的代码,让代码看起来不那么繁琐。
当然你也可以用这种方式去装逼
毕竟我们是专业的
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值