一.简介
在java8中新加入的功能,并且引入了2个对集合数据进行批量操作的包: java.util.function 包以及 java.util.stream 包。后面我会研究怎么去用,与大家分享,并一起学习。有人说是抄袭.net的,在我看来其实取其精华,去其糟粕。为什么使用lambda表达式?因为编译器推断并帮你转换包装为常规的代码,他可以让你代码更加的简洁。但是让维护人员可能会更加头疼,可能你写完之后维护会在背后问候你全家。
二.Lambda表达式的语法
ambda表达式的语法可以是:
1.参数列表、箭头符号->和函数体组成。 (parameters) -> expression
2.参数列表、箭头符号->和语句块组成。(parameters) ->{ statements; }
给大家举个例子:
1.(int i, int j) -> i+j 这是第一种由 参数列表、箭头符号->和函数体组成。返回的是i+j的合。如果不需要参数,直接写个()就可以。
2.(int i) ->{System.out.printIn(i)} 这是由参数列表、箭头符号->和语句块组成。 语句块里面内容就像是写方法一样就可以,语句块用{}括起来。
虽然java是强类型语言,lambda表达式官网说是自己能推断出类型的,也就是说我们不需要显示的指定其类型,再举个例子:
List list = new ArrayList();循环这个list可以这么写:
1.for(int i = 0; i < list.size() ;i++){}
2.for(String str : list){}
3.list.forEach(obj->{System.out.printIn(i)}) 未指定类型
4.list.stream().filter(str -> 处理) 未指定类型
你觉得哪种方法写起来更方便?不过java8里面的foreach这个循环效率经过测试是要比for的效率低,也可能是因为数据太少的原因。要想追求效率可能用for会更快。
未完待写……