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:美国]

  • 相关阅读:
    VS2005环境下的DLL应用
    Windows Xp下BMP位图转JPEG格式
    [转]C# 中使用委托对List<>进行排序和筛选
    [转]DRP系统知识点总结
    [转]计算机是如何启动的
    [转]JSP基础知识
    [转] 视觉直观感受若干常用排序算法
    [转]使用余弦定理计算两篇文章的相似性
    [转] 关于幂律分布的一个笔记
    [转]函数式编程(泛函编程模型)初探
  • 原文地址:https://www.cnblogs.com/laotan/p/3651111.html
Copyright © 2011-2022 走看看