public class LambdaDemo1 {
    public static void main(String[] args) {
        //Lambda完整版
        Integer[] arr = {1, 3, 2, 4, 8, 6, 5, 7, 9};
        Arrays.sort(arr, (Integer o1, Integer o2) -> {
            return o2 - o1;
        });
        System.out.println(Arrays.toString(arr));
//Lambda省略版
        //省略规则:
        //1.参数类型可以省略
        //2.如果只有一个参数,参数类型可以省略,同时()也可以省略
        //3.如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时要去掉分号
        Integer[] arr2 = {1, 3, 2, 4, 8, 6, 5, 7, 9};
        Integer[] arr6 = {1, 4, 3, 2, 5, 8, 7, 6, 9};
        Arrays.sort(arr6, (o1, o2) -> o2 - o1);
        System.out.println(Arrays.toString(arr6));
//原版
        method(new Swim() {
            @Override
            public void swimming() {
                System.out.println("swimming");
            }
        });
        //用lambda表达式简化
        method(() -> {
            System.out.println("swimming");
        });
    }

    public static void method(Swim s) {
        s.swimming();
    }
}

interface Swim {
    public abstract void swimming();
}
--------------------------------------
public class LambdaTest1 {
    public static void main(String[] args) {
        String[] arr={"123","12","1","1234"};
        Arrays.sort(arr,(o1,o2)->o1.length() -o2.length());
        System.out.println(Arrays.toString(arr));
    }
}
-----------------------------
public class Test1 {
    public static void main(String[] args) {
        Girlfriend g1=new Girlfriend("haha",18,161);
        Girlfriend g2=new Girlfriend("xiangxiang",19,174);
        Girlfriend g3=new Girlfriend("baby",19,174);
        Girlfriend[] arr={g1,g2,g3};
        Arrays.sort(arr,(o1,o2)->{
            int temp=o1.getAge()-o2.getAge();
            temp = temp == 0 ? o1.getHigh() - o2.getHigh() : temp;
            temp = temp == 0 ? o1.getName().compareTo(o2.getName()) : temp;
            //return temp;
            if(temp>0){
                return 1;//升序
            }else if(temp<0){
                return -1;//降序
            }else{
                return 0;//相等
            }
        });
        System.out.println(Arrays.toString(arr));
    }
}