zoukankan      html  css  js  c++  java
  • List集合对象根据字段排序

    //把需要比较的对象实现Comparable接口实现compareTo方法

    public class Address implements Comparable<Address> {
    String country;
    String city;
    String name;

    public Address(String country, String city, String name) {
    super();
    this.country = country;
    this.city = city;
    this.name = name;
    }

    public String toString(){
    return " name:"+this.name+" city:"+this.city+" country:"+this.country;
    }

    @Override
    public int compareTo(Address o) {
      //如果国家不相等,那么直接比较其他字段
      if(!this.country.equals(o.country)){
        return this.country.compareTo(o.country);
      }else if(!this.city.equals(o.city)){
        return this.city.compareTo(o.city);
      }else{
        return this.name.compareTo(o.name);
      }
      }
    }

    //测试类
    public class ComparableTest {
    public static void main(String[] args) {
      List<Address> list = new ArrayList<Address>();
      Address a1 = new Address("中国", "湖南", "屌丝1");
      Address a2 = new Address("中国", "湖北", "屌丝2");
      Address a3 = new Address("美国", "纽约", "屌丝3");
      Address a4 = new Address("中国", "湖北", "屌丝4");
      Address a5 = new Address("中国", "湖南", "屌丝5");
      Address a6 = new Address("中国", "广西", "屌丝6");
      list.add(a1);
      list.add(a2);
      list.add(a3);
      list.add(a4);
      list.add(a5);
      list.add(a6);

      System.out.println(list);//排序前
      Collections.sort(list);
      System.out.println(list);//排序后

      }
     }
    }

    //打印结果

    [ name:屌丝1 ncity:湖南 ncountry:中国,

    name:屌丝2 ncity:湖北 ncountry:中国,

    name:屌丝3 ncity:纽约 ncountry:美国,

    name:屌丝4 ncity:湖北 ncountry:中国,

    name:屌丝5 ncity:湖南 ncountry:中国,

    name:屌丝6 ncity:广西 ncountry:中国]


    [ name:屌丝6 ncity:广西 ncountry:中国,

    name:屌丝2 ncity:湖北 ncountry:中国,

    name:屌丝4 ncity:湖北 ncountry:中国,

    name:屌丝1 ncity:湖南 ncountry:中国,

    name:屌丝5 ncity:湖南 ncountry:中国,

    name:屌丝3 ncity:纽约 ncountry:美国]

  • 相关阅读:
    学用 TStringGrid [8] 字体列表
    学用 TStringGrid [6] Options
    学用 TStringGrid [5] FixedCols、FixedRows、Color、FixedColor
    学用 TStringGrid [4] ColWidths、RowHeights
    Delphi 的字符及字符串[6] Char(AnsiChar)、WideChar 与其编码的相互转换
    学用 TStringGrid [2] DefaultColWidth、DefaultRowHeight、Col、Row
    学用 TStringGrid [3] Cols、Rows
    动画演示 Delphi 2007 IDE 功能[5] 虚拟屏幕
    js string format
    jquery select(列表)的操作(取值/赋值)
  • 原文地址:https://www.cnblogs.com/laotan/p/3651111.html
Copyright © 2011-2022 走看看