zoukankan      html  css  js  c++  java
  • Java匿名内部类的继承者、终结者————lambda表达式

    一.什么是lambda表达式?

    lambda表达式就是一个代码块,可以传入变量和放入相应的代码。

    二.基本格式

     (参数 ) - >{  

                       代码

                       }

    实例:

    /**
         * 完成人生中第一个lambda表达式完成
         */
        Comparator<String> comp=(str1,str2)->{
            if(str1.length()>str2.length()) {
                return 1;
            }else if(str1.length()==str2.length()){
                return 0;
            }else {
                return -1;
            }
        };

    如果没有参数   (  )   也必须保留

    如果你的参数类型可以被推断出来你可以忽略其类型,如果其参数可以被推断出来,可以省略小括号。

    三.函数式接口

    当一个接口只需要实现一个抽象方法时,我们可以提供一个lambda表达式,这一种接口就是函数式接口。

    比如上面的例子

    /**
         * 完成人生中第一个lambda表达式完成
         */
        Comparator<String> comp=(str1,str2)->{
            if(str1.length()>str2.length()) {
                return 1;
            }else if(str1.length()==str2.length()){
                return 0;
            }else {
                return -1;
            }
        };

     Comparator接口只需要实现一个方法compare即可,那么我们就可以提供一个lambda表达式来实现。

    还有这样的例子:

    Integer[] arr = { 1, 2, 5, 4, 63, 59, 25, 45, 85, 12, 0, 122, };
    Arrays.sort(arr, (o1, o2) -> {
               return o1 - o2;
            });
  • 相关阅读:
    CSS之Position详解
    线性回归预测法linear regression
    置信区间
    asp.net MVC 中使用dataannotation验证Model
    决策树Decision Tree
    Net反射在项目中的应用
    C#并行编程并行任务
    一个特殊的产品价格制定法(市场决定价格)
    Json
    线性规划模型(线性优化模型)Linear programming
  • 原文地址:https://www.cnblogs.com/SAM-CJM/p/9401891.html
Copyright © 2011-2022 走看看