前言
lambda表达式本质就是一个匿名内部类…
使用
Thread t = new Thread(new Runnable(){
@Override
public void run(){
System.out.println("线程执行了");
}
});
这个就等价于:
Thread t = new Thread(() -> {
System.out.println("线程执行了");
});
lambda表达式语法:
// 1. 不需要参数,返回值为 5
() -> 5
// 2. 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 3. 接受2个参数(数字),并返回他们的差值
(x, y) -> x – y
// 4. 接收2个int型整数,返回他们的和
(int x, int y) -> x + y
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
(String s) -> System.out.print(s)
高级使用:集合排序
Collections.sort(Arrays.asList(s), (p,q)->{
return Integer.valueOf(p.length()).compareTo(q.length());
});