网站建设 事迹,网站建设毕业设计引言怎么写,中国互联网百强企业名单,python 网站开发 实例这些天看见另一本好书《给大忙人看的Java SE 8》#xff0c;其中的新特性 StreamAPI 和 lambda表达式 是之前jdk没有提供的新特性#xff0c;也是jdk8 重要的更新内容#xff0c;我会总结一下它们的用法#xff0c;更详细的参见书本。 lambda表达式的概念 人对一个概念的理… 这些天看见另一本好书《给大忙人看的Java SE 8》其中的新特性 StreamAPI 和 lambda表达式 是之前jdk没有提供的新特性也是jdk8 重要的更新内容我会总结一下它们的用法更详细的参见书本。 lambda表达式的概念 人对一个概念的理解是随着时间渐渐加深的之前也见过lambda表达式但那时候学起来完全摸不到头脑这两天重新去看终于有了一些概念可以想象过段时间会更加知道为什么会有lambda表达式大牛们为什么会去设计这种函数式语言java里大家都知道匿名函数下面是一个多线程的创建例子 package JDK;/*** Created by panqian on 2017/2/20.*/
public class Lambda_1 {public static void main(String[] args) {//传统创建线程new Thread(new Runnable() {Overridepublic void run() {System.out.println(传统创建线程);}}).start();//使用lambda表达式new Thread(()-{System.out.println(lambda表达式);}).start();}
} 同样是传入Runnable实现类lambda表达式的写法比传统的更加简洁。再看一个集合排序 ListInteger list new ArrayList();list.add(3);list.add(1);list.add(2);System.out.println(排序前 list.toString());Collections.sort(list, (Integer x, Integer y) - {return x y ? 1 : -1;});System.out.println(排序后 list.toString()); 可以看出 lambda表达式由 参数(Integer x, Integer y)剪头-代码块{ return x y ? 1 : -1; }组成。 lambda表达式很大的一个使用场景就是替代java的内部类做到代码简洁易读。 2.方法引用 对于上面的代码还不是最简洁的如果在lambda表达式中引用别的方法可以拿lambda表达式里面的方法引用 拿前面集合排序的例子继续简化 ListInteger list1 new ArrayList();
list1.add(3);
list1.add(1);
list1.add(2);System.out.println(排序前 list1.toString());//::前面是类后面是方法压缩到只有一句,等同于
//
// (Integer x, Integer y) - {
// return Integer.compare(x,y);
// }
list1.sort(Integer::compare);System.out.println(排序前 list1.toString()); 可以看出它由 对象::实例方法
类::静态方法 格式组成 Integer::compare这个表达式没有参数它会根据上下文自动判断应该传入什么参数达到排序的目的。 未完待续 转载于:https://www.cnblogs.com/lovejj1994/p/7182158.html