Java8 Comparator

java8 Comparator比較器的使用


//下面做一個排序的例子,來講解Collection中的sort
        List<String> names = Arrays.asList("zhangsan", "lisi", "wangwu");
        /*Collections.sort(names, new Comparator<String>(){
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1);//倒敘
            }
        });
        System.out.println("names = [" + names + "]");*/

        //用JDK8中Limbda的寫法,
        /*Collections.sort(names, (String o1, String o2) -> {
            return o2.compareTo(o1);//倒敘
        });
        System.out.println("names2 = [" + names + "]");*/

        //其實因爲JVM會根據names裏面都是String類型,推斷出o1,o2的類型,所以可以省列
        /*Collections.sort(names, (o1, o2) -> {
            return o2.compareTo(o1);//倒敘
        });
        System.out.println("names2 = [" + names + "]");*/

        /*Collections.sort(names, (o1, o2) -> o2.compareTo(o1));
        System.out.println("names2 = [" + names + "]");*/

        //更加符合Java8新特性的的寫法是:
        Collections.sort(names, Comparator.reverseOrder());
        System.out.println("names3 = [" + names + "]");


        //在這裏我們看到body只有一條語句的時候可以寫成o2.compareTo(o1),不需要括號,不需要return,我們稱之爲expression
        //還有一種statement 則必須寫全:{return o2.compareTo(o1);}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章