奔跑吧,JAVA!程序员互联网科技

Lambda表达式学习

2018-03-26  本文已影响28人  Kiss石头君

11. lambda表达式

public int add(int x, int y) {
    return x + y;
}
//可以表示为
(int x, int y) -> x + y;
//或(虚拟机可以推断出类型)
(x, y) -> x + y
//或
(x, y) -> { return x + y; }
//例如Runnable的run方法实现
new Thread(()->{System.out.println("hello");}).start();
//如果只有一个参数,虚拟机可以推断出类型
c->{return c.length();}
//报错!!!
Object obj = () -> {System.out.println("hi");}; 
//编译通过
Object o = (Runnable) () -> {System.out.println("hi"); }; 
// 外部迭代
for(Object o: list) { 
    System.out.println(o);
}
//改为forEach函数实现内部迭代
list.forEach(o -> {System.out.println(o);}); 
List<String> list = new ArrayList<>();
list.add("1");
list.add("12");
list.add("123");
list.stream()//创建一个流
.filter(e->e.length()==3)//转换,过滤出条件为true的元素
.forEach(e->System.out.println(e));//聚合,对过滤后的流进行内部迭代
//结果为123
上一篇 下一篇

猜你喜欢

热点阅读