码迷,mamicode.com
首页 > 编程语言 > 详细

java8-----lambda语法

时间:2019-12-20 18:45:56      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:under   tps   类型   包括   color   style   上下文   函数   语法   

 

 

 

        // -----lambda语法1------ https://www.baidu.com/link?url=6iszXQlsmyaoWVZMaPs3g8vLRQXzdzTnKzQYTF8lg-5QQthjAu1KMSxRbEU_PznfUS4-KVH1hfn64wdAOahiCq&wd=&eqid=d6aa9d87000231f1000000065dfc8e0a

        //1.lambda语法包括3个部分:
        //  (参数列表)->{方法体;}
        //  只有一个参数时,()可以省略
        //  方法体只有一行时可以省略{;}

        //2.当一个参数都没有的时候,仍然可以使用lambda表达式
        //   使用lambda表达式启动一个新的线程
        //   ()对应run方法的参数
        //   ->后面表示run的方法体
        new Thread(() -> System.out.println("使用lambda启动线程")).start();

        //3.如果要使用lambda来声明接口那么接口中只能有一个抽象方法
        //  因为函数接口是只有一个抽象方法的接口(抽象的方法只能有一个,可以有其他的用default修饰的方法)
        String s = "lambda test";
        int i = 100;
        MyInterface myInterface = (str, m) -> {
            //i++; 错误,无法对i的值进行修改
            System.out.println(i);
            System.out.println(str + "  " + m);
            return str + "----" + str;
        };
        String result1 = myInterface.test(s, 0);
        System.out.println(result1);

 

         //-----lambda语法2------ https://www.cnblogs.com/kangkaii/p/8419082.html

        String[] arr1 = {"program", "creek", "is", "a", "java", "site"};
        Arrays.sort(arr1, (String m, String n) -> Integer.compare(m.length(), n.length()));
        System.out.println(Arrays.toString(arr1));

        //2,参数类型可以推断
        //如果参数的类型可以根据上下文推断出来,则可以省略掉类型。
        //在上面的代码中,参数 m 与 参数 n 可以推测出来是String类型,所以可以省略。这样会让代码变得更加简洁,并且也更像是一个lambda表达式。
        String[] arr2 = { "program", "creek", "is", "a", "java", "site" };
        Arrays.sort(arr2, (m, n) -> Integer.compare(m.length(), n.length()));
        System.out.println(Arrays.toString(arr2));


        //3,存在多行代码
        //如果sort() 里面的代码一行写不下的话,可以多行,但需要{} 括起来。而且代码应该有明确的返回语句。
        String[] arr3 = { "program", "creek", "is", "a", "java", "site" };
        Arrays.sort(arr3, (String m, String n) -> {
            if (m.length() > n.length())
                return -1;
            else
                return 0;
        });
        System.out.println(Arrays.toString(arr3));

        //4,单个参数并可推断类型
        //单个参数的lambda表达式,在参数类型可以推断出来的时候,可以省略参数 “x” 的括号。
        String[] arr4 = { "program", "creek", "is", "a", "java", "site" };
        Stream.of(arr4).forEach(x -> System.out.println(x));

        //5,方法引用
        //利用方法引用,上面的代码也可以被写成如下形式:
        Stream.of(arr4).forEach(System.out::println);

java8-----lambda语法

标签:under   tps   类型   包括   color   style   上下文   函数   语法   

原文地址:https://www.cnblogs.com/hahajava/p/12074349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!