首页 > 编程语言 > 详细

JAVA8新特性 Lambda 表达式

时间:2020-03-28 16:52:14      阅读:55      评论:0      收藏:0      [点我收藏+]

JAVA8新特性 Lambda 表达式

Lambda 允许把函数作为参数传递进方法中。

Lambda表达式的重要特征:
  可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

变量作用域
  lambda 表达式只能引用标记了 final 的外层局部变量,这就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。

Lambda表达式的基本语法:

(parameters) -> expression  或  (parameters) ->{ statements; }

Lambda小程序,遍历 List 集合

        String[] array = {"a","b","c"};
        List<String> list = Arrays.asList(array);

        System.out.println("方式一:原始方式");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        System.out.println("方式二:增强 for 循环");
        for (String s : list) {
            System.out.println(s);
        }

        System.out.println("方式三:lambda 表达式");
        list.forEach( e -> System.out.println(e) );

        System.out.println("方式四:lambda 表达式");
        list.forEach( (e) -> {System.out.println(e);} );

        System.out.println("方式五:lambda 表达式 之 静态方法引用");
        list.forEach(System.out::println);

Lambda 小程序,使用 Lambda 表达式实现匿名内部类

        System.out.println("方式一:匿名内部类实现 Runnable接口 run 方法,并使用多线程运行");
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("Hello world !");
            }
        }).start();

        System.out.println("方式一:Lambda 实现 Runnable接口,并使用多线程运行");
        new Thread(() -> System.out.println("Hello world !")).start();

        System.out.println("方式二:匿名内部类实现 Runnable接口 run 方法");
        Runnable r1 = new Runnable() {
            @Override
            public void run() {
                System.out.println("Hello world !");
            }
        };
        r1.run();

        System.out.println("方式二:Lambda 实现 Runnable接口");
        Runnable r2 = () -> System.out.println("Hello world !");
        r2.run();

 

 

 

 

 

 

 

 

 

 

String[] array = {"a","b","c"};
List<String> list = Arrays.asList(array);

System.out.println("方式一:原始方式");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}

System.out.println("方式二:增强 for 循环");
for (String s : list) {
System.out.println(s);
}

System.out.println("方式三:lambda 表达式");
list.forEach( e -> System.out.println(e) );

System.out.println("方式四:lambda 表达式");
list.forEach( (e) -> {System.out.println(e);} );

System.out.println("方式五:lambda 表达式 之 静态方法引用");
list.forEach(System.out::println);

JAVA8新特性 Lambda 表达式

原文:https://www.cnblogs.com/tangshengwei/p/12587976.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!