List集合对象根据字段排序

时间:2022-09-10 14:01:16

//把需要比较的对象实现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 "\nname:"+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:美国]

List集合对象根据字段排序的更多相关文章

  1. java实现按对象某个字段排序,排序字段和规则自定义

    @SuppressWarnings({ "unchecked", "rawtypes" }) private <T> void sort(List& ...

  2. List集合对象中的排序,随机显示

    List<User> students = new ArrayList<User>(); User user1 = new User(); user1.setAge(112); ...

  3. Java将list&lt&semi;map&gt&semi;或者list&lt&semi;entity&gt&semi;集合根据指定字段排序

    今天项目中用到了,特记录一下 一. List<Map> 如果 item.get(sortField) 有时间,有数字的时候直接toString(),数组结果的排序结果可能不正确 List& ...

  4. List集合基于某个字段排序

    using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Product { publ ...

  5. java的list集合如何根据对象中的某个字段排序?

    转自:http://blog.csdn.net/wangjuan_01/article/details/51351633 List集合按某个字段排序 package wjtest_01; import ...

  6. JavaSE中Collection集合框架学习笔记&lpar;3&rpar;——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  7. List泛型集合对象排序

    本文的重点主要是解决:List<T>对象集合的排序功能. 一.List<T>.Sort 方法 () MSDN对这个无参Sort()方法的介绍:使用默认比较器对整个List&lt ...

  8. wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C&num;集合

    wpf 导出Excel   1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...

  9. js对象数组多字段排序

    来源:js对象数组按照多个字段进行排序 一.数组排序 Array.sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序. 一般用法:(数组元素从小大进行排序) var a = ...

随机推荐

  1. python中协程的使用示例

    例子1 把字符串分割为列表 def line_splitter( delimiter = None ): print( 'ready to split' ) result = None while T ...

  2. windows 下wamp环境1 配置之apache的安装

    一.安装apache2.4 打开网站 apachelounge.com    https://www.apachelounge.com/ 点击左侧Downloads,然后选择对应的版本,这里选择Apa ...

  3. Gradle使用手册(一):为什么要用Gradle?

    原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1. ...

  4. python用paramiko将执行的结果存入excel表格

    一.paramiko 利用paramiko可以远程控制服务器,上传和下载文件. 1.paramiko密码登录方式: #!/usr/bin/env python #coding:utf-8import ...

  5. vim 中按键映射问题

    按键映射关键字的组成开始让我摸不着头脑,查了资料,然后来做一个log 按键绑定命令:模式前缀(缺省为normal) + 递归前缀(缺省为空) + map 前缀表示生效范围,递归前缀表示是否递归查找命令 ...

  6. 利用Excel-Vba进行多表汇总和数据透视表

    汇总表格式 详情表格式 要求根据汇总表中的信息,到详情表中查找详细物料的具体个数 最终,对物料的个数进行汇总,结果如下图: ExcelVba代码如下(有一些注释代码供参考) Sub Start() S ...

  7. ubuntu12&period;04 alternate win7 双系统安装

    ubuntu alternate的安装比desktop复杂一点,因为alternate的安装过程有个步骤是检测cd-rom,如果你是刻盘安装,自然没问题,但是,现在的安装一般是将系统刻到U盘里,或者在 ...

  8. 39&period; recover rotated sorted array恢复旋转排序数组

    一句话思路:从左边开始的三步翻转法 一刷报错: 不理解start.end是位置随机定义的.i,j是临时变量,为start,end服务 nums.size()区别于nums.length:用于范形变量. ...

  9. Docker Cache mechanism

    Docker build 的 cache 机制: Docker Daemon 通过 Dockerfile 构建镜像时,当发现即将新构建出的镜像 与已有的新镜像重复时,可以选择放弃构建新的镜像,而是选用 ...

  10. javascript 中解析json

    首先温习一下JSON格式: (1) 单个对象{"变量名1":"变量值1","变量名2":"变量值2"} (2) 数组[{ ...