程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 用Java聚集中的Collections.sort辦法若何對list排序(兩種辦法)

用Java聚集中的Collections.sort辦法若何對list排序(兩種辦法)

編輯:關於JAVA

用Java聚集中的Collections.sort辦法若何對list排序(兩種辦法)。本站提示廣大學習愛好者:(用Java聚集中的Collections.sort辦法若何對list排序(兩種辦法))文章只能為提供參考,不一定能成為您想要的結果。以下是用Java聚集中的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());
  }
}
   </user>

測試一下:

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());
    }
  }
}
   </user>
   </user>

輸入成果以下

a
b

第二種辦法是依據Collections.sort重載辦法來完成,例如:

/**
* 依據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;
  }
}

主類中如許寫便可:

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>
    ();
    list.add(user2);
    list.add(user1);
    Collections.sort(list,new Comparator
    <user>
    (){
      public int compare(User arg0, User arg1) {
        return arg0.getOrder().compareTo(arg1.getOrder());
      }
    });
    for(User u : list){
      System.out.println(u.getName());
    }
  }
}
    </user>
   </user>
   </user>

輸入成果以下

a
b

前者代碼構造簡略,然則只能依據固定的屬性排序,後者靈巧,可以暫時指定排序項,然則代碼不敷簡練

多字段的場所:

Collections.sort(list,new Comparator
   <user>
    (){
      public int compare(User arg0, User arg1) {
 //      第一次比擬專業
        int i = arg0.getOrder().compareTo(arg1.getOrder());
//      假如專業雷同則停止第二次比擬
      if(i==0){
//        第二次比擬
        int j=arg0.getXXX().compareTo(arg1.getXXX());
//        假如學制雷同則前往按年紀排序
        if(j==0){
          return arg0.getCCC().compareTo(arg1.getCCC());
        }
        return j;
      }
      return i;
      }
    });
   </user>

以上內容就是小編給年夜家引見有關用Java聚集中的Collections.sort辦法若何對list排序(兩種辦法),願望對年夜家有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved