最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用Java集合中的Collections.sort方法如何對(duì)list排序(兩種方法)

 更新時(shí)間:2015年10月20日 10:31:51   投稿:mrr  
本文通過(guò)兩種方法給大家介紹java集合中的Collections.sort方法對(duì)list排序,第一種方式是list中的對(duì)象實(shí)現(xiàn)Comparable接口,第二種方法是根據(jù)Collections.sort重載方法實(shí)現(xiàn),對(duì)collections.sort方法感興趣的朋友一起學(xué)習(xí)吧

第一種是list中的對(duì)象實(shí)現(xiàn)Comparable接口,如下:

/**
* 根據(jù)order對(duì)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>

測(cè)試一下:

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>

輸出結(jié)果如下

a
b

第二種方法是根據(jù)Collections.sort重載方法來(lái)實(shí)現(xiàn),例如:

/**
* 根據(jù)order對(duì)User排序
*/
public class User { //此處無(wú)需實(shí)現(xiàn)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;
  }
}

主類中這樣寫(xiě)即可:

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>

輸出結(jié)果如下

a
b

前者代碼結(jié)構(gòu)簡(jiǎn)單,但是只能根據(jù)固定的屬性排序,后者靈活,可以臨時(shí)指定排序項(xiàng),但是代碼不夠簡(jiǎn)潔

多字段的場(chǎng)合:

Collections.sort(list,new Comparator
   <user>
    (){
      public int compare(User arg0, User arg1) {
 //      第一次比較專業(yè)
        int i = arg0.getOrder().compareTo(arg1.getOrder());
//      如果專業(yè)相同則進(jìn)行第二次比較
      if(i==0){
//        第二次比較
        int j=arg0.getXXX().compareTo(arg1.getXXX());
//        如果學(xué)制相同則返回按年齡排序
        if(j==0){
          return arg0.getCCC().compareTo(arg1.getCCC());
        }
        return j;
      }
      return i;
      }
    });
   </user>

以上內(nèi)容就是小編給大家介紹有關(guān)用Java集合中的Collections.sort方法如何對(duì)list排序(兩種方法),希望對(duì)大家有所幫助。

相關(guān)文章

最新評(píng)論

教育| 绍兴县| 关岭| 垣曲县| 元江| 应城市| 凉城县| 郴州市| 兴业县| 琼中| 玉树县| 常山县| 新乡市| 灵山县| 云梦县| 大余县| 灵寿县| 扶风县| 河南省| 建宁县| 罗江县| 七台河市| 凤山市| 泸水县| 平度市| 星座| 兴和县| 嘉鱼县| 广汉市| 大安市| 台江县| 奉贤区| 吴川市| 长治县| 普洱| 屯门区| 衡南县| 克拉玛依市| 尤溪县| 扬中市| 岫岩|