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]

java基础 -- Collections.sort的两种用法的更多相关文章

  1. java基础——Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? ...

  2. java基础—— Collections.sort的两种用法

    package com.jabberchina.test; import java.util.ArrayList; import java.util.Collections; import java. ...

  3. Comparable和Comparator的区别&Collections.sort的两种用法

    在Java集合的学习中,我们明白了: 看到tree,可以按顺序进行排列,就要想到两个接口.Comparable(集合中元素实现这个接口,元素自身具备可比性),Comparator(比较器,传入容器构造 ...

  4. Collections.sort的两种用法 转

    /** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...

  5. Collections.sort的两种用法

    http://gwh-08.iteye.com/blog/1233401/ class Foo implements Comparable<Foo>{ @Override public i ...

  6. Java中Collections类的排序sort函数两种用法

    java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List< ...

  7. Collections.sort的三种用法

    /** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...

  8. Java中Array.sort()的几种用法

    ****************************************************** * 精品书籍推荐:<Java从入门到经通> * 本书系统全面.浅显易懂,非常适 ...

  9. Java中Array.sort()的几种用法(需要初始化要排序的对象)

    ====================================================== 1.Arrays.sort(int[] a) 这种形式是对一个数组的所有元素进行排序,并且 ...

随机推荐

  1. 【牛客挑战赛30D】小A的昆特牌(组合问题抽象到二维平面)

    点此看题面 大致题意: 有\(S\)张无编号的牌,可以将任意张牌锻造成\(n\)种步兵或\(m\)种弩兵中的一种,求最后步兵数量大于等于\(l\)小于等于\(r\)的方案数. 暴力式子 首先我们来考虑 ...

  2. Python语言程序设计基础(5)—— 函数和代码复用

    lambda sum = lambda x,y : x + y print(sum(3,3),type(sum)) 默认参数 def prints(str,times = 2) : print(str ...

  3. PHP面试题分享与答案

    由于之前的每一个问题都是一个比较大的知识点,作者希望可以尽量一一详细解答,如果有不足的地方欢迎大家补充和修改,同时借鉴牛人写的Mysql中算法的实现以及内存原理,Btree结构等. 1:MySQL数据 ...

  4. 2018.12.15 struts.xml 一般配置文件写法 && 配置动态方法

    struts.xml 原始配置文件 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE s ...

  5. NW.js开发环境的搭建

    写在前面: 之前一直在找关于在mac怎么搭建nw.js的开发环境,苦于自己也没有很深入的理解,其实看看官方文档就差不多知道mac下要怎么整了. 官方文档的图: 正题开始: 先去下载一个nw.js的安装 ...

  6. ES6学习笔记(对象)

    1.属性的简洁表示法 const foo = 'bar'; const baz = {foo}; baz // {foo: "bar"} // 等同于 const baz = {f ...

  7. 商城管理系统项目(前台+后台+管理员+用户+html+jsp)

    管理员后台 用户前台 如果下载项目报错,加包即可(包已经打包放在下载地址) 数据库:mysql drop database shoppingmall; create database shopping ...

  8. Vue--- Vue(Pubsub + Ajax) 数据交互

    案例知识点 兄弟组件儿的通信     使用了Pubsub    订阅与发布 ajax数据请求    获取前   获取中   获取后   获取为空    获取异常 获取成功后显示数据给到  原先定义号的 ...

  9. 5820. 【NOIP提高A组模拟2018.8.16】 非法输入(模拟,字符串)

    5820. [NOIP提高A组模拟2018.8.16] 非法输入 (File IO): input:aplusb.in output:aplusb.out Time Limits: 1000 ms   ...

  10. LeetCode 删除链表倒数第N个节点

    基本思路 定义两个指示指针a b 让a先行移动n+1个位置 若a指向了NULL的位置,则删除的是头节点(由于走过了n+1个节点刚好指在尾部的NULL上) 否则让b与a一起移动直至a->next, ...