Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据

Java Lambda表达式的使用及案例

1. Lambda表达式的标准格式:
     (1)一些参数
     (2)一个箭头
     (3)一段代码
  格式:
      (参数列表)->{一些重写的代码};
  解释说明
     (  ):接口中抽象方法的参数列表,没有参数就空着,有参数就写出参数,多个参数使用逗号分隔
     ->:传递的意思,将参数列表传递给方法体
     {  }:重写接口的抽象方法体
2. Lambda表达式的省略格式
     凡是可以根据上下文进行推导的都可以省略
     可以省略的内容:
     (1)(参数列表):括号中参数列表的数据类型,可以省略不写
     (2)(参数列表):括号中的参数如果只有一个,那么参数类型和()都可以省略
     (3){一些代码}:如果{}中的代码只有一行,无论是否有返回值,都可以省略({},return,分号),但是三者必须同时省略
3. Lambda表达式的使用前提
     (1)使用Lambda表达式必须有接口,而且接口中有且仅有一个抽象方法;
             无论是JDK中内置的Runnable、Comparator接口还是自定义接口,只有当接口中的抽象方法存在且唯一时,才可以使用Lambda表达式。
     (2)使用Lambda表达式必须具有上下文推断
             方法的参数或局部变量类型必须为Lambda表达式对应的接口类型,才能使用Lambda表达式作为该接口的实例。

案例:

    //使用匿名内部类实现线程
    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("创建一个新线程");
            }
        }).start();
    }

    //使用Lambda表达式的方式实现线程
    public static void main(String[] args) {
        new Thread(()->{System.out.println("创建一个新线程");}).start();
    }
 public static void main(String[] args) {
        person[] arr={
                new person("aa",30),
                new person("bb",10),
                new person("cc",20)
        };

        //使用匿名方式实现
        /*Arrays.sort(arr,new Comparator<person>(){

            @Override
            public int compare(person o1, person o2) {
                return o1.getAge()-o2.getAge();
            }
        });*/

        //使用Lambda表达式实现
        Arrays.sort(arr,(person o1, person o2)-> {
                return o1.getAge()-o2.getAge();
        });

        for (person person : arr) {
            System.out.println(person);
        }

    }

 

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 详解百度大脑EdgeBoard出色的视频处理技术

下一篇: 架构设计&分布式&数据结构与算法面试题(2020最新版)

精华推荐