1. /**
  2. * @author
  3. * @version
  4. * 类说明
  5. */
  6. package com.jabberchina.test;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.Comparator;
  10. import java.util.List;
  11. public class SortTest {
  12. public static void main(String[] args) {
  13. List<String> lists = new ArrayList<String>();
  14. List<A> list = new ArrayList<A>();
  15. List<B> listB = new ArrayList<B>();
  16. lists.add("5");
  17. lists.add("2");
  18. lists.add("9");
  19. //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序
  20. Collections.sort(lists);
  21. A aa = new A();
  22. aa.setName("aa");
  23. aa.setOrder(1);
  24. A bb = new A();
  25. bb.setName("bb");
  26. bb.setOrder(2);
  27. list.add(bb);
  28. list.add(aa);
  29. //list中的对象A实现Comparable接口
  30. Collections.sort(list);
  31. B ab = new B();
  32. ab.setName("ab");
  33. ab.setOrder("1");
  34. B ba = new B();
  35. ba.setName("ba");
  36. ba.setOrder("2");
  37. listB.add(ba);
  38. listB.add(ab);
  39. //根据Collections.sort重载方法来实现
  40. Collections.sort(listB,new Comparator<B>(){
  41. @Override
  42. public int compare(B b1, B b2) {
  43. return b1.getOrder().compareTo(b2.getOrder());
  44. }
  45. });
  46. System.out.println(lists);
  47. System.out.println(list);
  48. System.out.println(listB);
  49. }
  50. }
  51. class A implements Comparable<A>{
  52. private String name;
  53. private Integer order;
  54. public String getName() {
  55. return name;
  56. }
  57. public void setName(String name) {
  58. this.name = name;
  59. }
  60. public Integer getOrder() {
  61. return order;
  62. }
  63. public void setOrder(Integer order) {
  64. this.order = order;
  65. }
  66. @Override
  67. public String toString() {
  68. return "name is "+name+" order is "+order;
  69. }
  70. @Override
  71. public int compareTo(A a) {
  72. return this.order.compareTo(a.getOrder());
  73. }
  74. }
  75. class B{
  76. private String name;
  77. private String order;
  78. public String getName() {
  79. return name;
  80. }
  81. public void setName(String name) {
  82. this.name = name;
  83. }
  84. public String getOrder() {
  85. return order;
  86. }
  87. public void setOrder(String order) {
  88. this.order = order;
  89. }
  90. @Override
  91. public String toString() {
  92. return "name is "+name+" order is "+order;
  93. }
  94. }
  95. 打印的结果为:
  96. [2, 5, 9]
  97. [name is aa order is 1, name is bb order is 2]
  98. [name is ab order is 1, name is ba order is 2]

最新文章

  1. 如何离线创建Ionic/cordova项目
  2. Criteria查询初学者的采纳点哦
  3. ORACLE SQL Developer日期显示格式设置
  4. BZOJ 1412 &amp; 最小割
  5. BJFU 1057
  6. bzoj3745: [Coci2015]Norma
  7. Windows Server 2012之搭建域控制器DC
  8. 大话RAC介质恢复---只有备份文件的恢复
  9. Objective-C的singleton模式
  10. Objective-C 记录
  11. Firefox添加插件支持修改Headers
  12. delphi中DLL编程详解
  13. SQLyog 注册码
  14. [QML] Connections元素介绍
  15. 纯JS写动态分页样式效果
  16. Time Complexity of Loop with Powers
  17. 在地铁上看了zabbix 的书发现 &quot;报警执行远程命令&quot;
  18. Linux下高效指令
  19. vsftp 基于虚拟用户的ftp服务器 如何做配额
  20. 微信小程序如何导入字体图标

热门文章

  1. python入门23 pymssql模块(python连接sql server增删改数据 )
  2. softmax实现cifar10分类
  3. [18/11/29] 继承(extends)和方法的重写(override,不是重载)
  4. Windows XP和Wndows7误删除了注册表下.exe文件夹之修复办法
  5. js实现div滚动条在页面刷新 滚动条位置固定
  6. Android学习笔记_46_Android的intent之间Object、List、List&lt;Object&gt;和全局变量数据的传递(Parcelable Serializable)
  7. 18年selenium3+python3+unittest自动化测试教程(下)
  8. group by 注意的细节 ,
  9. django-auth认证模块
  10. 你不知道的javaScript笔记(2)