您的位置:首页 > 编程语言 > Java开发

Java8 Lambda表达式学习心得

2017-05-10 16:56 519 查看
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息