1.1体验Lambda的更优写法

借助Java 8的全新语法,上述Runnable接口的匿名内部类写法可以通过更简单的Lambda表达式达到等效:

1.2 Lambda标准格式

Lambda省去面向对象的条条框框,格式由3个部分组成:

  • 一些参数

  • 一个箭头

  • 一段代码

省略规则

在Lambda标准格式的基础上,使用省略写法的规则为:

  1. 小括号内参数的类型可以省略;

  2. 如果小括号内有且仅有一个参,则小括号可以省略;

  3. 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。

public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}

使用lambda表达式后

 Arrays.sort(arr, ( o1,  o2) ->o1.getAge() - o2.getAge()

通过实现对对象数组的排序,认识Lambda表达式

1.3不使用lambda表达式

public class Demo03Arrays {
public static void main(String[] args) {
Person[] arr = { new Person("A", 20), new Person("D", 16), new Person("B", 28),
new Person("E", 27), };
Arrays.sort(arr, new Comparator<Person>() { public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
});
// 使用lambda表达式,简化匿名内部类
for (Person person: arr) {
System.out.println(person);
}
} }

1.4使用lambda表达式

public class Demo03Arrays {
public static void main(String[] args) {
Demo03Person[] arr = { new Person("A", 20),
          new Person("D", 16),
          new Person("B", 28),
new Person("E", 27), }; // 使用lambda表达式,简化匿名内部类
Arrays.sort(arr, (Person o1, Person o2) -> {
return o1.getAge() - o2.getAge();
});
     //lambda表达式最终效果
    //Arrays.sort(arr, ( o1,  o2) ->o1.getAge() - o2.getAge() for (Person person : arr) {
System.err.println(person );
}
}
}

最新文章

  1. spring声明式事务管理总结
  2. python学习笔记:Day02
  3. SQLite3的基本使用
  4. 在sqlServer中把数据导出为insert脚本
  5. sharepoint 2013 设置 显示详细错误信息
  6. POJ1094 Sorting It All Out(拓扑排序)
  7. Please ensure that adb is correctly located at &#39;...adb.exe&#39; and can be executed.
  8. DM8168硬件平台
  9. WEB中调用Nutch执行JOB抓取
  10. ⑩bootstrap组件 导航 使用基础案例
  11. MySQL错误:2003-Can&#39;t connect to MySQL server on &#39;localhost&#39;(10061 &quot;unknown error&quot;)
  12. css中bfc和ifc
  13. Android应用程序如何使用Internet资源?
  14. ionic3使用echarts
  15. 编译安装Nginx和PHP(带编译mysql)
  16. UnityHub破解
  17. css继承属性与非继承属性
  18. 吴恩达《AI For Everyone》_练习英语翻译_待更新
  19. bzoj 4137 [FJOI2015]火星商店问题——线段树分治+可持久化01trie树
  20. java 集合综述(总结于多位博友)

热门文章

  1. 最大流——poj1459
  2. 控制变量行业年份回归时在STATA里怎么操作_stata 分年份回归
  3. jQuery WeUI
  4. 腾讯bugly接入插件(CocosCreator)
  5. JQuery和JavaScript常用方法的一些区别
  6. 【2011集训贾志鹏】Crash 的数字表格
  7. A*算法——第K短路
  8. ubuntu下apache服务器操作方法小结,具有参考借鉴价值
  9. 「题解」:windy数
  10. Redis学习目录