zoukankan      html  css  js  c++  java
  • java List 排序 Collections.sort() 对 List 排序

    实体类:

    class User {
     String name;
     String age;
     
     public User(String name,String age){
      this.name=name;
      this.age=age;
     }
     public String getAge() {
      return age;
     }
     public void setAge(String age) {
      this.age = age;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     } 
    }

    具体的比较类,实现Comparator接口:

    import java.util.Comparator;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Collections;
    
    public class ComparatorUser implements Comparator{
     public int compare(Object arg0, Object arg1) {
      User user0=(User)arg0;
      User user1=(User)arg1;
    
       //首先比较年龄,如果年龄相同,则比较名字
    
      int flag=user0.getAge().compareTo(user1.getAge());
      if(flag==0){
       return user0.getName().compareTo(user1.getName());
      }else{
       return flag;
      }  
     }
     
    }

    测试类:

    public class SortTest {
     
     public static void main(String[] args){
      List userlist=new ArrayList();
      userlist.add(new User("dd","4"));
      userlist.add(new User("aa","1"));
      userlist.add(new User("ee","5"));
      userlist.add(new User("bb","2"));  
      userlist.add(new User("ff","5"));
      userlist.add(new User("cc","3"));
      userlist.add(new User("gg","6"));
      
      ComparatorUser comparator=new ComparatorUser();
      Collections.sort(userlist, comparator);
       
      for (int i=0;i<userlist.size();i++){
       User user_temp=(User)userlist.get(i);
          System.out.println(user_temp.getAge()+","+user_temp.getName()); 
      }
      
     }
    }

    首先年龄排序,如果年龄相同,则按名字排序。

    结果:
       1, aa
       2, bb
       3, cc
       4, dd
       5, ee                    //注意:同样是5岁的人,则比较名字(ee,ff),然后排序
       5, ff
       6, gg

    java Collections.sort实现的排序默认是升序排序。既然知道默认是升序了,那么转换下两个Object的位置就变成降序排序。

  • 相关阅读:
    一个关于java线程的面试题
    【Feature】初探Feature
    Foreign Keys in the Entity Framework
    JS keycode
    SQLyog8.3 . 8.4 Enterprise/Ultimate crack
    Win7下使用toad连接oracle出现can't initialize OCI 1
    ADO 数据类型转换表
    简单Jscript(ASP)模版操作文件
    自适应宽度的左右结构DIV+CSS
    一个比较好用的 classic asp Jscript 框架 SmartAsp
  • 原文地址:https://www.cnblogs.com/longshiyVip/p/4777024.html
Copyright © 2011-2022 走看看