`

ArrayList 对象排序实例

    博客分类:
  • Java
阅读更多
  1. import java.util.ArrayList;   
  2. import java.util.Collection;   
  3. import java.util.Collections;   
  4. import java.util.Comparator;   
  5.   
  6.   
  7. public class SortTwo implements Comparator {   
  8. //排序字段   
  9. private String sort1;   
  10. //排序方式   
  11. private int state;   
  12. public SortTwo(int state){   
  13. this.state=state;   
  14. }   
  15. public SortTwo(){   
  16.   
  17. }   
  18. public int SortUp(Object o1,Object o2){   
  19. Student stu=(Student) o1;   
  20. Student stu1=(Student) o2;   
  21. if(sort1.equals("name")){   
  22. if(stu.getName().compareTo(stu1.getName())>1){   
  23. return 1;   
  24. else if(stu.getName().compareTo(stu1.getName())<1){   
  25. return -1;   
  26. }else{   
  27. return 0;   
  28. }   
  29. }   
  30. if(sort1.equals("age")){   
  31. if(stu.getAge().compareTo(stu1.getAge())>1){   
  32. return 1;   
  33. else if(stu.getAge().compareTo(stu1.getAge())<1){   
  34. return -1;   
  35. }else{   
  36. return 0;   
  37. }   
  38. }   
  39. return 0;   
  40. }   
  41. public int SortDOWN(Object o1,Object o2){   
  42. Student stu=(Student) o1;   
  43. Student stu1=(Student) o2;   
  44. if(sort1.equals("name")){   
  45. if(stu.getName().compareTo(stu1.getName())>1){   
  46. return -1;   
  47. else if(stu.getName().compareTo(stu1.getName())<1){   
  48. return 1;   
  49. }else{   
  50. return 0;   
  51. }   
  52. }   
  53. if(sort1.equals("age")){   
  54. if(stu.getAge().compareTo(stu1.getAge())>1){   
  55. return -1;   
  56. else if(stu.getAge().compareTo(stu1.getAge())<1){   
  57. return 1;   
  58. }else{   
  59. return 0;   
  60. }   
  61. }   
  62. return 0;   
  63. }   
  64. public int compare(Object o1, Object o2) {   
  65.   
  66. if(this.state==1){   
  67. return SortUp(o1, o2);   
  68. }else{   
  69. return SortDOWN(o1, o2);   
  70. }   
  71. }   
  72.   
  73. /**  
  74. * @param args  
  75. */  
  76. public static void main(String[] args) {   
  77. // TODO Auto-generated method stub   
  78. Student stu=new Student();   
  79. stu.setName("123");   
  80. stu.setAge("12");   
  81. Student stu1=new Student();   
  82. stu1.setName("234");   
  83. stu1.setAge("23");   
  84. ArrayList<Student>list=new ArrayList<Student>();   
  85. list.add(stu);   
  86. list.add(stu1);   
  87. SortTwo t=new SortTwo(1);   
  88. t.sort1="age";   
  89. Collections.sort(list,t);   
  90. for(Student st : list){   
  91. System.out.println(st.getName() +"   "+st.getAge());   
  92. }   
  93. }   
  94.   
  95. }   

 

 

文章来自: http://bill-sbia.iteye.com/blog/189729

分享到:
评论

相关推荐

    Java针对ArrayList自定义排序的2种实现方法

    主要介绍了Java针对ArrayList自定义排序的2种实现方法,结合实例形式总结分析了Java操作ArrayList自定义排序的原理与相关实现技巧,需要的朋友可以参考下

    java实现ArrayList根据存储对象排序功能示例

    主要介绍了java实现ArrayList根据存储对象排序功能,结合实例形式分析了java针对ArrayList的相关运算、排序操作技巧,需要的朋友可以参考下

    JAVA 范例大全 光盘 资源

    实例14 数组排序 35 实例15 数组搜索 37 实例16 去掉数组重复数字 39 实例17 求质数(素数) 41 实例18 矩阵的加减和转置 43 实例19 数组实现顺序栈与队列 46 实例20 Arrays数组的应用 50 第5章 面向对象设计...

    java List排序工具类

    // 构造多个person对象为排序提供数据 Person person = new Person(); person.setName("wtt"); person.setSex("男"); person.setAge(24); Person person1 = new Person(); person1.setName("wjj"); person1....

    C# 3.0完全自学宝典 (F)

    示例描述:学习C#面向对象开发实例。 AnimalPerson 演示C#类的使用 Anonymous 演示匿名类的使用 ClsIndexeer 演示类索引器的使用 ExtMethod 演示扩展方法的使用 Inherit 演示类继承的实例 NewMethod 演示new...

    java中set、list和map的使用方法实例

    // 常用的list接口的实现类有ArrayList和LinkedList // 学习map对象容器的使用 // map对象容器里面储存的元素是(key,value)形式的键值对,比如(a,1)(b,20)(c,55) // key不可以重复,value可以重复 // 常用的map接口...

    超级有影响力霸气的Java面试题大全文档

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...

    突破程序员基本功的16课.part2

    2.2.2 访问子类对象的实例变量 2.2.3 调用被子类重写的方法 2.3 父子实例的内存控制 2.3.1 继承成员变量和继承方法的区别 2.3.2 内存中子类实例 2.3.3 父、子类的类变量 2.4 final修饰符 2.4.1 final修饰的...

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    set.list.map接口

    3.Map(映射&lt;集合&gt;)是无序的,是一种把键对象和值对象进行映射的集合,它每一个元素都包含一对键对象和值对象,给出键对象就可以得到值对象,键对象不允许重复,对值没有要求,多个任意键对象可以映射到一个值对象...

    java 面试题 总结

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符...

    关于JAVA面试的100题及其答案

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符...

    Java开发技术大全 电子版

    10.11.4不能实例化参数类型对象..327 10.12本章小结328 第11章集合329 11.1集合接口与抽象类329 11.1.1Collection接口330 11.1.2Iterator接口330 11.1.3AbstractCollection抽象类331 11.1.4几个常用术语332 ...

    进销存系统文档作业例子

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...

    AIC的Java课程1-6章

     能够定义类,创建类的对象(实例化类)和通过对象引用访问数据成员和方法成员;形成定义类和使用类的两种不同的思维方式。  理解构造函数的作用(分配对象空间),理解和定义重载的构造函数。  明白...

    java常用工具类的使用

    DateFormat是一个抽象类,不能直接实例化,可以使用下表中的静态方法得到DateFormat的对象。 方法 说明 getDateInstance() 返回默认地区,默认格式的关于日期的DateFormat对象。 getDateInstance(int) 返回指定...

    JAVA面试题最全集

    除了使用new关键字创建对象意外,试列举另外三种以上创建实例的方式? 37.classloader中,JDK的API、Classpath中的同web-inf中的class加载方式有什么区别? 38.列举三种以上垃圾回收算法,并比较其优缺点? 39....

    疯狂JAVA讲义

    7.4.2 ArrayList和Vector实现类 264 7.4.3 固定长度的List 266 7.5 Queue接口 266 7.5.1 LinkedList实现类 266 7.5.2 PriorityQueue实现类 269 7.6 Map 270 7.6.1 HashMap和Hashtable实现类 271 7.6.2 ...

    程序员需要经常刷题吗-simple-java-zh-CN:SimpleJava是Java常见问题的集合。中文翻译

    Java是按引用还是按值传递对象? 迭代与递归 ##3。 类和接口 什么是实例初始化器? 字段不能被覆盖? 继承与组合 如何使用 Java 枚举? 有多少种内部类? 什么是内部接口? 子类和超类的构造函数? 4个访问级别 何时...

Global site tag (gtag.js) - Google Analytics