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

JAVA8 Lambda(1)

2017-07-19 19:57 120 查看


一.简介

在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会更快。 

未完待写……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: