Java8 Lambda表达式学习心得

来源:互联网 发布:大数据调查问卷模板 编辑:程序博客网 时间:2024/05/01 06:51

lambda表达式是java8引入的重要特性,java语言向函数式编程迈向了一步。函数式编程非常适合处理大数据,同时函数式编程可以是代码更直观、更易懂;但是函数式编程,在java调式中比较难以调式查看堆栈。

lambda表达式的定义

lambda表达式允许你通过表达式代替函数接口;表达式和方法一样,有参数列表和方法体。lambda表达式增强了集合库,增加了java.util.stream和java.util.function。stream就如同之前集合的迭代器(iterator),但是它又增加了许多额外的功能。function中接口是集合为支持lambda表达式增加的一些默认接口。

lambda表达式语法

(参数列表)->(表达式) 或 (参数列表)->{表达式;}
简单例子:
()->5;
(x) -> 5*x;
(int x, int y) -> x + y;
a -> System.out.println(a);

lambda表达式应用

lambda表达式还有一个重要的作用就是替代内部匿名类,譬如:
// before java8
btn.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent event) {
System.out.println(“Hello World!”);
}
});
// java 8
btn.setOnAction(() -> System.out.println(“hello world”));
使用lambda式还可以应用到Runable接口。
new Thread(new Runnable() {
System.out.println(“hello world”);
});

new Thread(() -> System.out.println(“hello lambda”));

lambda表达式和stream

List testStream = new ArrayList() {
{
add(“I”);
add(“like”);
add(“lambda!”);
}
}
//打印每个单词
testStream.stream().foreach(word -> System.out.println(word));

//寻找最长的单词
testStream.stream().max((word1,word2) -> word1.length()-word2.length()).get();

0 0
原创粉丝点击