Java List排序

來源:互聯網
上載者:User

標籤: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排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.