java中list的sort()功能如何使用?

 

排序時正序/倒序處理起來可能會混淆,可以用更簡單的方法。
可以使用java.util自帶的比較器來做

Comparator.comparingInt(Integer::intValue).reversed() // 倒序

Comparator.comparingInt(Integer::intValue) // 正序

 

  示例:

public class Main {    

    public static void main(String[] args) {        

       List<Integer> list = Lists.newArrayList(1, 2, 3);     

       list.sort(Comparator.comparingInt(Integer::intValue).reversed()); // 倒序 

       print(list);        

       list.sort(Comparator.comparingInt(Integer::intValue)); // 默認正序        

       print(list);        

       List<Integer> list2 = Lists.newArrayList(1, 2, 3);        

       list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue).reversed()).collect(Collectors.toList()); // 倒序        

       print(list2);        

       list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue)).collect(Collectors.toList()); // 默認正序        

       print(list2);    

    }    

    /**     * 輸出     */    
    private static <T> void print(List<T> list) {        

        list.forEach(e -> System.out.print(e + ","));        
        
        System.out.println();    
    }

}

  執行輸出爲:

3,2,1,

1,2,3,

3,2,1,

1,2,3,

  對於複雜對象,比如User,想通過年齡來比較

public class User {    

    public String name; // 姓名    

    public int age; // 年齡    

    public int getAge() {        

        return age;    
    }

}

  可以使用:

 

Comparator.comparingInt(User::getAge).reversed() // 倒序

Comparator.comparingInt(User::getAge) // 正序

 

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