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

  • 相关阅读:
    LamBda学习(一)
    如何返回一个只读泛型集合
    Socket编程笔记同步
    如何快速读取大文件(看csdn一网友要求写的)没有测试具体的速度。
    如何实现项目脚本的批量生成
    如何实现WORD查找完成后不提示的代码
    W32/Pate.a 病毒处理小记
    在WORD中用VBA实现光标移动与内容选择
    2. WCF 消息操作
    3. WCF 异常处理
  • 原文地址:https://www.cnblogs.com/laotan/p/3651111.html
Copyright © 2011-2022 走看看