Java8 Lambda表达式学习心得
2017-05-10 16:56
519 查看
lambda表达式是java8引入的重要特性,java语言向函数式编程迈向了一步。函数式编程非常适合处理大数据,同时函数式编程可以是代码更直观、更易懂;但是函数式编程,在java调式中比较难以调式查看堆栈。
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();
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();
相关文章推荐
- Java 8 Lambda 表达式学习心得总结
- java lambda表达式 闭包学习笔记
- Java 8 学习--lambda表达式的月之暗面
- Java8学习笔记 — 【Lambda表达式】
- 【Java学习笔记之三十一】详解Java8 lambda表达式
- Java8学习笔记(一)-初步认识Lambda表达式
- java 8 lambda 表达式 学习
- Java Lambda 表达式学习笔记
- 一、JAVA8学习笔记 Lambda表达式快速入门
- Java8学习笔记之Lambda表达式
- Java 8学习之Lambda表达式
- java8 Lambda 表达式 学习
- java lambda表达式学习笔记
- java8 Lambda表达式的学习与测试
- Java8学习(3)- Lambda 表达式
- Java 8学习之旅1---Lambda表达式
- java lambda表达式学习笔记
- Java 8学习之Lambda表达式
- Java8学习(3)- Lambda 表达式