这篇给大家介绍下java8的lambda表达式。这个lambda表达式在python,scala这样的语言程序里面是使用比较多的,有熟悉这些语言开发的程序的小伙伴应该都比较了解。在java8中引入了lambda表达式,因此这里我们也可以使用lambda表达式,快速简洁的编写代码。
lambda表达式的语法定义
Lambda表达式在java的语言中引入了 “->” 操作符,在这个操作符里面,左侧是对应的参数,右侧是对应的方法,由此3部分组成了一个lambda表达式。
lambda表达式的用法
1)第一种,不需要参数,没有返回值的lambda表达式
Runnable r = () -> System.out.println("this is a test Lambda");
2)第二种,有一个参数,没有返回值的lambda表达式
Consumer<String> function = a -> System.out.println(a.length());
3)第三种,有两个参数,没有返回值的lambda表达式
Consumer function = (a,b) -> System.out.println(a.length()+b.length());
4)第四种,有参数,有返回值
BinaryOperator<Integer> bo = (a,b) -> { System.out.println("测试下"); return a + b; };
看到了吧,就是这么简单,3部分组成即可。参数 -> 方法
5)再举个例子,我们使用lambda,比较list排序
ArrayList<Integer> arrayList = new ArrayList<Integer>(); arrayList.add(1); arrayList.add(2); arrayList.add(3); Collections.sort(arrayList,(e1,e2) -> { return Integer.compare(e1, e2); });
注意:
1、当lambda的语句里面,只有一行代码的时候,不需要写大括号,例如:BinaryOperator<Integer> bo = (a, b) -> return a + b;
2、当lambda的语句里面,只有一行代码的时候,如果是return,这里的return也可以不用写。
3、当右侧方法有很多行的时候,需要写大括号,如果有return,也必须加上return
lambda表达式是不是很简单。
还没有评论,来说两句吧...