java list排序的兩種方式(實現Comparable介面和Collections.sort重載方法)

來源:互聯網
上載者:User

標籤:排序   code   list   ash   lis   imp   for   ret   tail   

轉載自:http://blog.csdn.net/zxy_snow/article/details/7232035

用Collections.sort方法對list排序有兩種方法

 第一種是list中的對象實現Comparable介面,如下:

/**  * 根據order對User排序 */  public class User implements Comparable<User>{       private String name;       private Integer order;       public String getName() {           return name;       }       public void setName(String name) {           this.name = name;       }       public Integer getOrder() {           return order;       }       public void setOrder(Integer order) {           this.order = order;       }       public int compareTo(User arg0) {           return this.getOrder().compareTo(arg0.getOrder());       }   } 測試一下:  public class Test{         public static void main(String[] args) {           User user1 = new User();           user1.setName("a");           user1.setOrder(1);           User user2 = new User();           user2.setName("b");           user2.setOrder(2);           List<User> list = new ArrayList<User>();           //此處add user2再add user1          list.add(user2);           list.add(user1);           Collections.sort(list);           for(User u : list){               System.out.println(u.getName());           }       }   }   

輸出結果如下
a
 b

第二種方法是根據Collections.sort重載方法來實現,例如:

 

[java] view plain copy/**  * 根據order對User排序 */  public class User { //此處無需實現Comparable介面      private String name;       private Integer order;       public String getName() {           return name;       }       public void setName(String name) {           this.name = name;       }       public Integer getOrder() {           return order;       }       public void setOrder(Integer order) {           this.order = order;       }   }     主類中這樣寫即可(HastSet——>List——>sort進行排序):  public class Test {      public static void main(String[] args) {          User user1 = new User();          user1.setName("a");          user1.setPrice(11);          User user2 = new User();          user2.setName("b");          user2.setPrice(2);            Set<User> Hset = new HashSet<User>();          Hset.add(user2);          Hset.add(user1);            List<User> list = new ArrayList<User>();          list.addAll(Hset);              Collections.sort(list,new Comparator<User>(){              public int compare(User arg0, User arg1) {                  return arg0.getPrice().compareTo(arg1.getPrice());              }          });          for(User u : list){              System.out.println(u.getName());          }      }  

輸出結果如下:

a
b

 

預設為升序,將。return arg0.getOrder().compareTo(arg1.getOrder());    改為:
return arg1.getOrder().compareTo(arg0.getOrder());   
就成降序的了。

java list排序的兩種方式(實現Comparable介面和Collections.sort重載方法)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.