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的位置就变成降序排序。

  • 相关阅读:
    js重要函数
    js判断是否为空
    checkbox选择框如果被选中value值就可以传过去,没有被选中value就不能穿过去(调试了近一天,坑爹的说)
    js常用点
    常用jdbc操作
    java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
    com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 2 无效 待整理
    OOAD和UML
    .net 外部CSS文件不起作用总结
    线程读书笔记
  • 原文地址:https://www.cnblogs.com/longshiyVip/p/4777024.html
Copyright © 2011-2022 走看看