1 概述
简单地说,一些参数,一个箭头,一段代码
() -> {}
- () 用来描述参数列表
- {} 用来描述方法体
- -> 为 lambda运算符
2 示例
1 排序
Book[] books = {new Book("西游记",100,2000),
new Book("东游记",50,2020),
new Book("南游记",200,1990),
new Book("北游记",150,2010)};
// lambda表达式用于排序
Arrays.sort(books,(o1,o2) -> o1.getPrice()-o2.getPrice());
输出
此书名字:东游记, 价格:50, 出版年份:2020年
此书名字:西游记, 价格:100, 出版年份:2000年
此书名字:北游记, 价格:150, 出版年份:2010年
此书名字:南游记, 价格:200, 出版年份:1990年
2 启动线程
new Thread( () -> System.out.println(Thread.currentThread().getName()),
"线程1").start();
new Thread( () -> System.out.println(Thread.currentThread().getName()),
"线程2").start();
new Thread( () -> System.out.println(Thread.currentThread().getName()),
"线程3").start();
输出
线程1
线程2
线程3
3 综合应用
List<Book> booklist = Arrays.asList(
new Book("西游记", 100, 2020),
new Book("东游记", 50, 2000),
new Book("南游记", 50, 2010),
new Book("西厢记", 200, 1990),
new Book("西土大唐", 150, 2010));
booklist.stream().filter(book -> book.getName().contains("西"))
.sorted((o1,o2) -> o1.getYear()-o2.getYear())
.forEach(System.out::println);
模糊搜索包含‘西’子的书,并按年份降序打印,输出
此书名字:西厢记, 价格:200, 出版年份:1990年
此书名字:西土大唐, 价格:150, 出版年份:2010年
此书名字:西游记, 价格:100, 出版年份:2020年