Java List排序


List排序大體上分為如下兩類:

1、List<Integer> 對Integer、String等類型的List排序

2、List<Object> 對自定義對象的排序

本文代碼例子只進行簡單的介紹,僅起到拋磚引玉作用,讀者可以自行開發哈。

1、對List<Integer>進行排序

代碼如下:

 1 List<Integer> l = new ArrayList<Integer>();
 2 l.add(3);
 3 l.add(1);
 4 l.add(2);
 5 l.add(9);
 6 l.add(7);
 7 
 8 Collections.sort(l);//默認排序(從小到大)
 9 for(int i : l){
10     System.out.println(i);
11 }
12 
13 Collections.reverse(l);//倒敘(從大到小)
14 for(int i : l){
15     System.out.println(i);
16 }

代碼運行后結果為 12379 97321 先是正序輸出(默認從小到大) 后是倒敘輸出(從大到小)。

 

2、對List<Object>進行排序

對自定義的對象進行排序,首先對象需要實現Comparable接口,然后重寫compareTo方法。代碼如下:

實體對象

 1 /*
 2  * 學生實體
 3  */
 4 class Student implements Comparable<Student>{
 5     public Integer Age = 0;
 6     public String Name = "";
 7     
 8     public Integer getAge() {
 9         return Age;
10     }
11     public void setAge(int age) {
12         Age = age;
13     }
14 
15     public String getName() {
16         return Name;
17     }
18     public void setName(String name) {
19         Name = name;
20     }
21 
22     public Student(int age,String name){
23         this.Age = age;
24         this.Name = name;
25     }
26     
27     @Override
28     public int compareTo(Student s) {
29         //自定義比較方法,如果認為此實體本身大則返回1,否則返回-1
30         if(this.Age >= s.getAge()){
31             return 1;
32         }
33         return -1;
34     }
35 }

 

排序代碼實例:可以用list.sort()排序,也可以用Collections.sort()排序,結果都是一樣的

 1 List<Student> list = new ArrayList<Student>();
 2 
 3 list.add(new Student(1,"zhangsan"));
 4 list.add(new Student(6,"zhangsan"));
 5 list.add(new Student(2,"zhangsan"));
 6 list.add(new Student(9,"zhangsan"));
 7 list.add(new Student(1,"zhangsan"));
 8 
 9 list.sort(Comparator.naturalOrder());//正序比較
10 //Collections.sort(list);//正序比較
11 
12 for(Student i : list){
13     System.out.println(i.getAge());
14 }

代碼只寫了正序排序,結果如下:11269。

 

總體上排序簡單的實現就是這樣子,有很多不足,希望各位大大指正。^_^!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM