1. 什么是Lambda?
Fundamentally, a lambda expression is just a shorter way of writing an implementation of a method for later execution.
(从根本上讲,一个lambda表达式是一个短的写作方式用于以后的执行方法的实现。)
(1)lambda是方法的实现 (2)lambda是延迟执行的
2.举例
首先看一个用匿名内部类的例子。
public class Test1{ public static void main(String args[]){ Runnable r = new Runnable(){ public void run(){ System.out.println("hello,lambda!"); } }; r.run(); } } 要换成lambda是什么样的呢? public class Test2{ public static void main(String args[]){ Runnable r = ()->System.out.println("hello,lambda"); r.run(); } }
例子2
使用前:
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia"); Collections.sort(names, new Comparator<String>() { @Override public int compare(String a, String b) { return b.compareTo(a); } }); 使用后:
Collections.sort(names, (String a, String b) -> { return b.compareTo(a); }); Lambda语法
A lambda in Java essentially consists of three parts: a parenthesized set of parameters, an arrow, and then a body, which can either be a single expression or a block of Java code. lambda包含3个部分: (1)括弧包起来的参数 (2)一个箭头 (3)方法体,可以是单个语句,也可以是语句块 参数可以写类型,也可以不写,jvm很智能的,它能自己推算出来
