jdk1.8新增特性——lambda表达式

    技术2022-07-11  97

    什么是Lambda?

    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。 lambda的主要特征:

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

    lambda表达式基本语法

    lambda表达式基本语法,如下

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

    使用

    搞明白lambda表达式的基本特征和语法以后,我们去实际代码中运用一下看看。

    计算两数相减结果 public class T { public static void main(String[] args) { Sub sub = (a, b) -> a - b; System.out.println(sub.sub(6,4)); } } interface Sub { int sub(int a, int b); }

    传统写法

    public class T { public static void main(String[] args) { int result = new Sub() { @Override public int sub(int a, int b) { return a - b; } }.sub(6, 4); System.out.println(result); } } interface Sub { int sub(int a, int b); }

    不难看出,对比传统匿名内部类的写法,使用lambda表达式让我们的代码简洁了许多。

    多线程实现 传统写法: public static void main(String[] args) { Runnable runnable = new Runnable() { @Override public void run() { System.out.println("实现Runnable接口"); } }; runnable.run(); }

    lambda表达式:

    Runnable runnable=()->System.out.println("实现Runnable接口"); runnable.run();

    lambda表达式两行代码就实现了,不难看出lambda表达式使我们的代码更加简洁了。

    stream流 过滤掉以“a”开头的元素 public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("aa"); list.add("ba"); list.add("ca"); list.stream().filter(s->!s.startsWith("a")).forEach(System.out::println); }

    运行结果

    以上就是lambda表达式的基本使用了,熟练使用还是得在实际运用中实践才能达到出神入化的地步。

    Processed: 0.012, SQL: 9