Java 8 Guide E1

/ 技术笔记 / 0 条评论 / 286浏览

文章系学习Java8新特性

教程地址: Java8简明教程

在接口中定义默认方法

示例代码

/**
 * Created by imyzt on 2019/1/17 10:59
 * 可以在接口中定义默认方法
 */
public interface Formula {

    double calculate(int a);

    default double sqrt(int a) {
        return Math.sqrt(a);
    }

    static int abs (int b) {
        return Math.abs(b);
    }
}

class Main {
    public static void main(String[] args) {
        Formula formula = new Formula() {
            @Override
            public double calculate(int a) {
                return sqrt(a * 1000);
            }
        };

        double calculate = formula.calculate(1);
        System.out.println(calculate);              //31.622776601683793

        double sqrt = formula.sqrt(1000);
        System.out.println(sqrt);                   //31.622776601683793

        int abs = Formula.abs(1000);
        System.out.println(abs);                    //1000
    }
}

Lambda表达式

Lambda表达式是java8最大的更新了, 使得一些操作十分简单明了.

不使用lambda表达式进行集合排序

List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
Collections.sort(names, new Comparator <String>() {
    @Override
    public int compare(String a, String b) {
        return b.compareTo(a);
    }
});        

使用Lambda表达式进行集合排序

 Collections.sort(names, (String a, String b) -> {
     return b.compareTo(a);
});
Collections.sort(names, (String a, String b) -> b.compareTo(a));
Collections.sort(names, (a, b) -> b.compareTo(a));
Collections.sort(names, Comparator.reverseOrder());
names.sort(Comparator.reverseOrder());