zoukankan      html  css  js  c++  java
  • JAVA对list集合进行排序Collections.sort()

    对一个集合中的对象进行排序,根据对象的某个指标的大小进行升序或降序排序。代码如下:

    // 进行降序排列
            Collections.sort(list, new Comparator<ResultTypeDesc>() {
                public int compare(ResultTypeDesc o1, ResultTypeDesc o2) {
                    return o2.getRatio().compareTo(o1.getRatio());
                }
            });
    // 进行升序排列
            Collections.sort(list, new Comparator<ResultTypeDesc>() {
                public int compare(ResultTypeDesc o1, ResultTypeDesc o2) {
                    return o1.getRatio().compareTo(o2.getRatio());
                }
            });

    经过测试发现,只需要把两个对象的位置调换一下即可升序或降序。

    如果指标相同,根据多个指标进行排序,需创建一个比较器:

    import java.util.*;
    
    public class ComparatorResultType implements Comparator{
    
     public int compare(Object arg0, Object arg1) {
      ResultTypeDesc desc0=(ResultTypeDesc)arg0;
      ResultTypeDesc desc1=(ResultTypeDesc)arg1;
    
       //首先比较主指标,如果主指标相同,则比较次指标
    
      int flag=desc0.getXXX().compareTo(desc1.getXXX());
      if(flag==0){
       return desc0.getXXX2().compareTo(desc1.getXXX2());
      }else{
       return flag;
      }  
     }
    }
    
    //测试类中代码:
    ComparatorResultType comparator=new ComparatorResultType();
    Collections.sort(list, comparator);
    

    对list集合进行逆输出:

    Collections.reverse(list);

    ResultTypeDesc这个为所需的实体类对象,具体使用结合自己代码情况即可。

    此方法有可能报空指针,自己结合情况,自行解决,判断是否为NULL。

  • 相关阅读:
    [linux] 内存检测
    [思维]牛客编程巅峰赛S1第6场
    [逆序数, 思维]牛客编程巅峰赛S1第5场
    [Linux] TrafficControl 流量控制
    [linux]常用指令
    [带权并查集]小白月赛25-C 白魔法师
    初窥原型
    性能测试流程
    JMeter服务器监控技术
    使用Fiddler进行HTTPS抓包和手机APP抓包
  • 原文地址:https://www.cnblogs.com/telwanggs/p/7772597.html
Copyright © 2011-2022 走看看