I have array of objects person (int age; String name;).

How can I sort this array alphabetically by name and then by age?

Which algorithm would you use for this ?

解决方案

You can use Collections.sort as follows:

private static void order(List persons) {

Collections.sort(persons, new Comparator() {

public int compare(Object o1, Object o2) {

String x1 = ((Person) o1).getName();

String x2 = ((Person) o2).getName();

int sComp = x1.compareTo(x2);

if (sComp != 0) {

return sComp;

}

Integer x1 = ((Person) o1).getAge();

Integer x2 = ((Person) o2).getAge();

return x1.compareTo(x2);

}});

}

List is now sorted by name, then by age.

String.compareTo "Compares two strings lexicographically" - from the docs.

Collections.sort is a static method in the native Collections library. It does the actual sorting, you just need to provide a Comparator which defines how two elements in your list should be compared: this is achieved by providing your own implementation of the compare method.

java 两个字段排序,如何在Java中按两个字段排序?相关推荐

  1. php语句中两个if语句,如何在PHP中组合两个IF语句

    或者: if (stripos($data, 'test') !== false) { if (preg_match('/"[^"]*"/i', $data, $regs ...

  2. 如何在Python中串联两个列表?

    如何在Python中串联两个列表? 例: listone = [1, 2, 3] listtwo = [4, 5, 6] 预期结果: >>> joinedlist [1, 2, 3, ...

  3. access自动编号怎么解除_如何在 Access 中重置“自动编号”字段值

    如何在 Access 中重置"自动编号"字段值 中删除某个表中的一些行或所有行时,"自动编号"字段不会自动重置.要重置"自动编号"字段值并 ...

  4. php如何对数组进行分组,如何在PHP中对数组进行分组排序

    如何在PHP中对数组进行分组排序 发布时间:2021-01-04 16:28:51 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关如何在PHP中对数组进行分组排序,文章内容质量 ...

  5. 如何在python中找到两个日期时间对象之间的时差?

    本文翻译自:How do I find the time difference between two datetime objects in python? 如何分辨两个datetime对象之间的时 ...

  6. 微信小程序开发--如何在swiper中显示两个item以及下一个item的部分内容

    如何在swiper中显示两个item以及下一个item的部分内容 我所实现的效果 我实现的代码 <!--图片轮播图--><!--要展示两个item 以及下一个item的部分内容,ci ...

  7. html有4个li怎么选择第二个,如何在html中使用两个具有不同属性的Li?

    背景 我在同一页面使用li多种用途的元素.在一个地方,我使用它们作为导航栏,然后在页面中使用它们作为图像网格.如何在html中使用两个具有不同属性的Li? 问题 的问题是,在导航栏我有一个下拉,所以当 ...

  8. 如何在vim中交换两个打开文件(在拆分中)的位置?

    本文翻译自:How can I swap positions of two open files (in splits) in vim? Assume I've got some arbitrary ...

  9. python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...

  10. 【Word】如何在第N页开始页码/如何在word中使用两组不同页码?

    目录 1.Word页码原理 2.如何在第N页开始页码 3.如何在word中使用两组不同页码 1.Word页码原理 如题,首先得弄清楚word是如何给每一页编页码的:word是以[节]为单位,一节可以是 ...

最新文章

  1. [luoguP2618] 数字工程(DP)
  2. Python种reverse和reversed反转列表的操作方法
  3. 连接相机无法识别_车牌识别一体机在汽修门店安装中要注意的事项
  4. 国内电影发行公司简介
  5. 复制id_rsa命令
  6. [转载] C#面向对象设计模式纵横谈——11. Facede外观模式
  7. php自动加载 依赖,php自动加载
  8. WIN11安装JDK8
  9. 安卓实现百度地图定位
  10. LaTeX报告用模板
  11. 纠错码专题——线性分组码(1)
  12. DCMP2.0项目总结_页面
  13. DH密钥交换协议c语言,DH秘钥交换协议
  14. 京东E卡购买api接口
  15. jsp:通过Session控制登陆时间和内部页面的访问
  16. 【表白合集】表白文案+小程序准备好了,请问对象哪里领?(内含多份源码)拿去。
  17. 科普操作系统与芯片那些事儿
  18. 2016中国移动CRM洞察力论坛召开|码客荣获2016中国移动CRM产品创新奖
  19. 你还在盲目跟风学Python?不要盲目!某华大学教授有话要说
  20. 矩阵理论——直和与投影

热门文章

  1. [渝粤教育] 潍坊职业学院 化工安全技术 参考 资料
  2. 【渝粤教育】国家开放大学2018年春季 0529-21T高级英语阅读(1) 参考试题
  3. 【渝粤教育】电大中专测量学 (2)作业 题库
  4. 【渝粤题库】国家开放大学2021春1009离散数学(本)题目
  5. 【无线电波】蓝牙Bluetooth来源 原理?有无辐射影响健康 是否安全!?
  6. bloomfilter的java实现,BloomFilter(布隆过滤器)原理及实战详解
  7. linux手机摩托,Linux操作系统触控智能机 摩托ZN4图赏
  8. oracle一页显示15行,oracle rownum分页与显示记录小测
  9. 块内拉升lisp_求大神告知,如何用LISP实现块数量分类统计程序,最好统计后列出表格。谢谢了。...
  10. 华为编程规范_华为 Java 编程规范出炉,究竟和官方文档有何不同?