您当前的位置: 首页 > 

梁云亮

暂无认证

  • 1浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Lambda表达式

梁云亮 发布时间:2019-10-22 17:56:30 ,浏览量:1

Lambda表达式

可以简单认为Lambda表达式是匿名内部类的简写形式。

语法 :
  • 完整 (参数列表)->{return 语句;}
  • 参数类型可以省略
  • 如果只有一个参数,小括号可以省略 参数名->{return 语句;}
  • 如果只有一条语句,将大括号+return+封号全省略 参数名-> 语句
示例1:
public static void main(String[] args) {
    //匿名内部类
    Runnable obj1 = new Runnable() {
        @Override
        public void run() {
            System.out.println("run1");
        }
    };
    obj1.run();
    //Lambda表达式
    Runnable obj2 = () -> {
        System.out.println("run2");
    };
    obj2.run();
}
示例2:
public static void main(String[] args) {
    //匿名内部类
    Comparator comparator1 = new Comparator() {
        @Override
        public int compare(String o1, String o2) {
            return o1.length() - o2.length();
        }
    };
    int res1 = comparator1.compare("zhangsan", "lisi");
    System.out.println(res1);

    //Lambda表达式
    Comparator comparator2 = (String o1, String o2) -> {
        return o1.length() - o2.length();
    };
    int res2 = comparator2.compare("zhangsan", "lisi");
    System.out.println(res2);
}
示例3:Lambda表达式参数列表的数据类型可以省略。
public static void main(String[] args) {
    //Lambda表达式
    Comparator comparator2 = (  o1,   o2) -> {
        return o1.length() - o2.length();
    };
    int res2 = comparator2.compare("zhangsan", "lisi");
    System.out.println(res2);
}
示例4:如果Lambda的方法体只有一条语句,一对大括号和它后面的分号以及return关键字可以省略。
public static void main(String[] args) {
    //Lambda表达式
    Comparator comparator2 = (o1, o2) -> o1.length() - o2.length() ;
    int res2 = comparator2.compare("zhangsan", "lisi");
    System.out.println(res2);
}
示例5:如果参数列表只有一形参,小括号也可以省略。
public static void main(String[] args) {
    //Lambda表达式
    Function fun = new Function(){
        @Override
        public Integer apply(Integer e) {
            return 10 + e;
        }
    };
    Object res = fun.apply(20);
    System.out.println(res);

    Function fun2 =  (item)-> 10 +item;
    Integer res2 = fun2.apply(20);
    System.out.println(res2);
}
示例6:如果参数列表只有一形参,小括号也可以省略。
public static void main(String[] args) {
    Consumer consumer =  (item)-> System.out.println(item);
    consumer.accept("zhangsan");
}
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0488s