有参数返回的Lambda
主要看代码的注释
1 public static void main(String[] args) { 2 Person[] people =new Person[3]; 3 people[0] = new Person("aa",10); 4 people[1] = new Person("bb",15); 5 people[2] = new Person("cc",12); 6 7 System.out.println(Arrays.toString(people)); 8 /* 9 * 改变成lambda表达式的 10 * 表达式中,省略了compare的方法体 11 * 原因是:在之前的Comparator 中只包含这样一个方法 12 * return 的值还是不变用了之前的升序的形式 13 * */ 14 15 Arrays.sort(people, (o1, o2) -> { 16 // 直接o1-o2 就是升序 17 return o1.getAge()-o2.getAge(); 18 }); 19 /* 20 * 匿名内部类设置排序 21 * 一个是传入的需要排序的对象 22 * 一个是重写Comparator 的 public int compare(Person o1, Person o2) 23 * 修改return 的值,来确认是升序还是降序的排列 24 */ 25 Arrays.sort(people, new Comparator<Person>() { 26 @Override 27 28 public int compare(Person o1, Person o2) { 29 // 直接o1-o2 就是升序 30 return o1.getAge()-o2.getAge(); 31 } 32 }); 33 /* 34 * 还可以换为Comparator 35 * */ 36 37 Arrays.sort(people, Comparator.comparingInt(Person::getAge)); 38 39 40 System.out.println(Arrays.toString(people));