java return () -> {system.out.println("");}

什么意思?java中return()->{system.out.println("");};这样使用是什么意思?... 什么意思?
java 中
return ()-> {system.out.println("");};
这样使用是什么意思?
展开
 我来答
雪飞潇潇
2018-07-02 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:867万
展开全部

这是lambda表达式, 一种语法(糖) ,可以简化代码,从java8开始支持lambda表达式.

有的编程语言,很多早就有lambda表达式了,  java从8才开始支持lambda表达式,算比较晚的了.

我们以实现Runabble接口,来创建一个线程为例

一: 使用传统的匿名内部类来实现,

Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类的方式实现Runnable接口");
}
});
t1.start();

很多人觉得上面的写法比较啰嗦, 写那么多代码, 核心就是一句System.out.println("....")

二: lambda表达式实现

Thread t2 = new Thread(() -> {System.out.println("lambda表达式的实现Runabble接口");});
t2.start();

lambda表示配合Java8流, 进行函数式编程, 可以简洁的完成很多比较啰嗦的逻辑 .

比如对一个List<Double>进行求和,求均值,求最大值,求最小值,元素个数. 以前需要写较多的代码. 

Java8流和lambda表达式的操作方法如下

	// lambda表达式配合java8流
List<Double> list = Arrays.asList(5.9, 4.5, 6.2, 1.8, 3.7, 2.9, 2.52);
DoubleSummaryStatistics ds = list.stream().collect(Collectors.summarizingDouble(x -> x));

System.out.println("最小值:" + ds.getMin());
System.out.println("最大值:" + ds.getMax());
System.out.println("平均值:" + ds.getAverage());
// System.out.println("数量:" + ds.getCount());
// System.out.println("总和:" + ds.getSum());

相关的知识, 还是比较多, 建议先学习lambda表达式,然后学习java8流(stream)

匿名用户
2018-07-02
展开全部
这是java8新增加的语法特性,叫Lambda表达式,了解一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式