1. /**
  2. * @author guwh
  3. * @version 创建时间:2011-11-3 上午10:49:36
  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]

Collections.sort的两种用法 转的更多相关文章

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

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

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

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

  3. Collections.sort的两种用法

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

  4. java基础 -- Collections.sort的两种用法

    /** * @author * @version * 类说明 */ package com.jabberchina.test; import java.util.ArrayList; import j ...

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

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

  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. c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast

    C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...

  9. operator 的两种用法

    C++,有时它的确是个耐玩的东东,就比如operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).1.操作符 ...

随机推荐

  1. 响应式页面字体用什么单位:rem

    html:62.5%//10pxbody:1.4rem;//14px... <!doctype html> <html> <head> <title>a ...

  2. 【 java版坦克大战--事件处理】 让坦克动起来--事件处理的准备

    要能够控制坦克运动,必须用到事件处理的知识. 事件处理的一个demo. /** * 事件处理机制:委派事件模型.指当事件发生的时候,产生事件的对象(事件源),会把此 * "消息"传 ...

  3. POJ 1459 Power Network 最大流(Edmonds_Karp算法)

    题目链接: http://poj.org/problem?id=1459 因为发电站有多个,所以需要一个超级源点,消费者有多个,需要一个超级汇点,这样超级源点到发电站的权值就是发电站的容量,也就是题目 ...

  4. Excel Skill (1) -- 判断时如何去掉框里的空格

    使用命令 TRIM 说明: Purpose. Remove extra spaces from text. Text with extra spaces removed. =TRIM (text) t ...

  5. 这是从word发的第一篇博客。

    喜欢做的事,怎么样都不会厌倦. 以前只知道office功能强大,但不太清楚到底还能干些啥,印象最深的是outlook了,自己也在用,挺好 今天偶然发现,word还能发布博客,真是太惊喜了 这算是一篇实 ...

  6. Introduction to Gaussian Processes

    Introduction to Gaussian Processes Gaussian processes (GP) are a cornerstone of modern machine learn ...

  7. csu 10月 月赛 I 题 The Contest

    Description 殷犇有很多队员.他们都认为自己是最强的,于是,一场比赛开始了~ 于是安叔主办了一场比赛,比赛有n个题目,每个题目都有一个价值Pi和相对能力消耗Wi,但是有些题目因为太坑不能同时 ...

  8. find+*的问题

    转自find+*的问题 不久前做移植的时候想把某个目录下的C文件都找出来,然后拷贝下,结果一直报错,我用的是*.c作为pattern.今天看论坛的时候知道为什么了. $ ls test2.c  tes ...

  9. DHTMLX 前端框架 建立你的一个应用程序教程(四)--添加一个工具条toolbar

    工具条例子 样本如下: 这里我们使用的是dhtmlxToolbar 组件. 添加工具栏到布局中: 1.使用attachToolbar() 方法初始化页面 添加代码到index.html中 dhtmlx ...

  10. Android日期时间格式国际化

    公共类 的DateFormatSymbols 扩展对象 实现 Serializable接口 Cloneable接口 java.lang.Object的    ↳ java.text.DateForma ...