用Collections.sort方法对list排序有两种方法

 第一种是list中的对象实现Comparable接口,如下:

  1. /**
  2. * 根据order对User排序
  3. */
  4. public class User implements Comparable<User>{
  5. private String name;
  6. private Integer order;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public Integer getOrder() {
  14. return order;
  15. }
  16. public void setOrder(Integer order) {
  17. this.order = order;
  18. }
  19. public int compareTo(User arg0) {
  20. return this.getOrder().compareTo(arg0.getOrder());
  21. }
  22. } 测试一下:
  23. public class Test{
  24. public static void main(String[] args) {
  25. User user1 = new User();
  26. user1.setName("a");
  27. user1.setOrder(1);
  28. User user2 = new User();
  29. user2.setName("b");
  30. user2.setOrder(2);
  31. List<User> list = new ArrayList<User>();
  32. //此处add user2再add user1
  33. list.add(user2);
  34. list.add(user1);
  35. Collections.sort(list);
  36. for(User u : list){
  37. System.out.println(u.getName());
  38. }
  39. }
  40. }


输出结果如下
a
 b

第二种方法是根据Collections.sort重载方法来实现,例如:

  1. /**
  2. * 根据order对User排序
  3. */
  4. public class User { //此处无需实现Comparable接口
  5. private String name;
  6. private Integer order;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public Integer getOrder() {
  14. return order;
  15. }
  16. public void setOrder(Integer order) {
  17. this.order = order;
  18. }
  19. }
  20. 主类中这样写即可(HastSet——>List——>sort进行排序):
  21. public class Test {
  22. public static void main(String[] args) {
  23. User user1 = new User();
  24. user1.setName("a");
  25. user1.setPrice(11);
  26. User user2 = new User();
  27. user2.setName("b");
  28. user2.setPrice(2);
  29. Set<User> Hset = new HashSet<User>();
  30. Hset.add(user2);
  31. Hset.add(user1);
  32. List<User> list = new ArrayList<User>();
  33. list.addAll(Hset);
  34. Collections.sort(list,new Comparator<User>(){
  35. public int compare(User arg0, User arg1) {
  36. return arg0.getPrice().compareTo(arg1.getPrice());
  37. }
  38. });
  39. for(User u : list){
  40. System.out.println(u.getName());
  41. }
  42. }

输出结果如下:

a
b

 

默认为升序,将。return arg0.getOrder().compareTo(arg1.getOrder());    改为:
return arg1.getOrder().compareTo(arg0.getOrder());   
就成降序的了。

java List 排序 Collections.sort()的更多相关文章

  1. java List 排序 Collections.sort() 对 List 排序

    class User { String name; String age;  public User(String name,String age){  this.name=name;  this.a ...

  2. Java语言利用Collections.sort对Map,List排序

    1.main方法包含TreeMap排序1,TreeMap排序2,HashMap排序,List<Integer>排序,List<Bean>排序,List<Map>排序 ...

  3. python 中的sort 和java中的Collections.sort()函数的使用

    x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...

  4. Java—集合框架 Collections.sort()、Comparable接口和Comparator接口

    Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set ...

  5. 对List数组进行排序 Collections.sort(param1,param2)

    @SuppressWarnings("unchecked") List<PageData> group_items_list = (List<PageData&g ...

  6. JAVA对list集合进行排序Collections.sort()

    对一个集合中的对象进行排序,根据对象的某个指标的大小进行升序或降序排序.代码如下: // 进行降序排列 Collections.sort(list, new Comparator<ResultT ...

  7. Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序

    在List的排序中常用的是Collections.sort()方法,可以对String类型和Integer类型泛型的List集合进行排序. 首先演示sort()方法对Integer类型泛型的List排 ...

  8. 在Java中使用Collections.sort 依据多个字段排序

    一.如何使用Collections工具类进行排序 使用Collections工具类进行排序主要有两种方式: 1.对象实现Comparable接口,重写compareTo方法 /** * @author ...

  9. Java-小技巧-006 List 排序 Collections.sort()

    一.数组操作类:Arrays 最早开始使用,查看方法二分查找:public static int binarySearch(数据类型[] a, 数据类型 key) 前提是有序的 equals 先排序 ...

随机推荐

  1. jquery 取的单选按钮组的值

    <input type=”radio” name=”wholesale_one” id=”wholesale_one” value=”1″ />1箱起批<input type=”ra ...

  2. 精华 ionic入门之色彩、图标、边距和界面组件:列表

    目录:色彩.图标和边距色彩图标内边距界面组件:列表列表:.list成员容器:.item.item: 嵌入文本.item : 嵌入图标.item : 嵌入头像.item : 嵌入缩略图.item : 嵌 ...

  3. (DFS)hdoj1198-Farm Irrigation

    题目链接 DFS的简单应用,比较繁琐的是处理输入的英文字母.用并查集也可以做(可是笔者现在还没有掌握并查集,之前只用过一次,以后学会回来补上) #include<cstdio> #incl ...

  4. oracle安装后登录

    运行 sqlplus回车 longon as sysdba回车 回车 这样就可以登录了. SQL>create user username identified by password; SQL ...

  5. ppurl

    ppurl 就这么挂了?? 简直不敢相信 我才刚上不久,它竟然就这么挂啦??? 还是转到哪了? 有人知道吗? 表示我很愤怒,就好像当年新浪爱问共享就这么挂了一样 过了很久我才知道原来它转到新浪微盘了. ...

  6. [安卓]我的安卓开发FAQ

    1.什么是ADT: android官方解释是:ADT (Android Developer Tools) is a plugin for Eclipse that provides a suite o ...

  7. pig

    1.Pig是基于hadoop的一个数据处理的框架. MapReduce是使用java进行开发的,Pig有一套自己的数据处理语言,Pig的数据处理过程要转化为MR来运行.2.Pig的数据处理语言是数据流 ...

  8. tip use view.isineditmode() in your custom views to skip code when shown in eclipse

    tip use view.isineditmode() in your custom views to skip code when shown in eclipse

  9. 使用busybox构建根文件系统

    当我们在Qemu上运行起来自己编译的内核之后,需要使用busybox构建一个文件系统,将此文件系统挂载上去就可以使用busybox提供的各种命令了. 1.编译安装busybox 源码下载地址:http ...

  10. @font-face usage

    If you haven’t been living in a cave for the past few months, you will have heard lots of talk about ...