標籤:style list java ons turn compare rabl student int
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 @Override28 public int compareTo(Student s) {29 //自訂比較方法,如果認為此實體本身大則返回1,否則返回-130 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。
總體上排序簡單的實現就是這樣子,有很多不足,希望各位大大指正。^_^!!
Java List排序