`

【转】java List 排序 Collections.sort

    博客分类:
  • java
阅读更多

java List 排序 Collections.sort

 

用Collections.sort方法对list排序有两种方法 
第一种是list中的对象实现Comparable接口,如下: 

代码:
Java代码
  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.   
  24.   
  25.   
  26. public class Test{   
  27.     public static void main(String[] args) {   
  28.           User user1 = new User();   
  29.           user1.setName("a"); user1.setOrder(1);   
  30.           User user2 = new User(); user2.setName("b");   
  31.           user2.setOrder(2);   
  32.           List<User> list = new ArrayList<User>();   
  33.         //此处add user2再add user1   
  34.          list.add(user2); list.add(user1);   
  35.          Collections.sort(list);   
  36.         for(User u : list){   
  37.              System.out.println(u.getName());   
  38.          }   
  39.      }   
  40. }  
Java代码  收藏代码
  1. <span style="">/** 
  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.   
  24. public class Test{  
  25.     public static void main(String[] args) {  
  26.          User user1 = new User();  
  27.          user1.setName("a"); user1.setOrder(1);   
  28.          User user2 = new User(); user2.setName("b");  
  29.          user2.setOrder(2);   
  30.          List<User> list = new ArrayList<User>();   
  31.         //此处add user2再add user1   
  32.         list.add(user2); list.add(user1);   
  33.         Collections.sort(list);   
  34.         for(User u : list){   
  35.             System.out.println(u.getName());   
  36.         }   
  37.     }   
  38. }  
  39.   
  40. </span>  

输出结果如下 


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

代码:
Java代码
  1. /**
  2. * 根据order对User排序 */   
  3. public class User {   
  4. //此处无需实现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.   
  21.   
  22.   
  23.   
  24. public class Test{   
  25.     public static void main(String[] args) {   
  26.         User user1 = new User();   
  27.         user1.setName("a");   
  28.         user1.setOrder(1);   
  29.         User user2 = new User();   
  30.         user2.setName("b");   
  31.         user2.setOrder(2);   
  32.         List<User> list = new ArrayList<User>();   
  33.         list.add(user2);   
  34.         list.add(user1);   
  35.         Collections.sort(list,new Comparator<User>(){   
  36.            public int compare(User arg0, User arg1) {   
  37.                return arg0.getOrder().compareTo(arg1.getOrder());   
  38.             }   
  39.         });   
  40.        for(User u : list){   
  41.            System.out.println(u.getName());   
  42.         }   
  43.      }   
  44. }  
最简单的就是上面红色的字。。。。。。。。。。。

默认为升序,将。return arg0.getOrder().compareTo(arg1.getOrder());    改为:

return arg1.getOrder().compareTo(arg0.getOrder());   

就成倒序的了。。

分享到:
评论

相关推荐

    java List 排序 Collections.sort

    NULL 博文链接:https://xuedong.iteye.com/blog/1147254

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

    主要介绍了JAVA对list集合进行排序Collections.sort(),需要的朋友可以参考下

    Java Collections.sort()实现List排序的默认方法和自定义方法

    主要介绍了Java Collections.sort()实现List排序的默认方法和自定义方法,需要的朋友可以参考下

    用Java集合中的Collections.sort方法如何对list排序(两种方法)

    本文通过两种方法给大家介绍java集合中的Collections.sort方法对list排序,第一种方式是list中的对象实现Comparable接口,第二种方法是根据Collections.sort重载方法实现,对collections.sort方法感兴趣的朋友一起...

    java 字符串排序

    字符串数组 排序

    JAVA中Collections工具类sort()排序方法

    主要介绍了JAVA中Collections工具类sort()排序方法,非常具有实用价值,需要的朋友可以参考下。

    Java 字母数字字符串 混合排序(绝对超值管用)

    List&lt;String&gt; location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));

    Java对象排序、中文排序、SortedSet排序使用和源码讲解

    但是通常排序算法不得不让程序员在写代码的过程中陷入对底层很多指针和位置的理解,java不希望这样,所以排序大多可以由java帮你做掉,例如,你要对一个数组排序,通过:Collections.sort(list)那么这个list被排序了...

    set.list.map接口

    Collections.sort(list); //依次检索输出list的所有对象 // for(int i=0;i&lt;list.size();i++){ // System.out.println(list.get(i)); // } Iterator Iter=list.iterator(); while(Iter.hasNext()){ System.out...

    11集合.rarjava 集合类

    java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,在这里,我主要是想说明它的sort方法的几种类型, 提示:实现接口的方法时,只需要比较两个数,大的返回1,...

    JAVA 一道编程题目

    JAVA 一道编程题目 核心代码: Collections.sort(list, String.CASE_INSENSITIVE_ORDER);//根据指定的字母方式排序

    Java 生成随机字符串数组的实例详解

    主要介绍了Java 生成随机字符串数组的实例详解的相关资料,主要是利用Collections.sort()方法对泛型为String的List 进行排序,需要的朋友可以参考下

    java7hashmap源码-JavaToRemember:Java需要记住的事情

    Collections.sort() //对一个 LIST Arrays.sort() //对一个数组进行排序 Collections.reverse() //对一个 LIST Arrays.toString(char [] a) //转换为字符串 charAt(int x) //获取特定索引处的字符length() //字符串...

    java常用工具类的使用

    而在Java类库中有一个Arrays类的sort方法已经实现各种数据类型的排序算法。程序员只需要调用该类的方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,...

    关于列表有用的一些方法.pptx

    3.如果列表中的元素是可比较大小的,则可用Java.util.Collections类中的静态方法sort(列表)方法进行排序 Collections.sort(list); System.out.println(list); ;4.求最大最小值 Collections类中的静态方法max(列表)...

    Java 面试资源(基础 多线程)

    Collections.sort排序内部原理 HashMap 的实现原理 HashSet 的实现原理 ArrayList 和 LinkedList 的区别 为何Map接口不继承Collection接口 HashMap的底层实现原理 HashMap并发安全的问题 JDK1.8与JDK1.7的性能对比

    最常用的12种设计模式小结

    比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着模式(Decorator): 动态的给一个对象添加一些额外的职责. 比如java.io包. BufferedInputStream封装...

    java集合详解与总结

    排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 ...

    Java中Comparator接口与Comparable接口的区别

     当我们有这么一个personList,里面包含了person1, person2, persion3….., 我们用Collections.sort( personList ), 是得不到预期的结果的. 这时肯定有人要问, 那为什么可以排序一个字符串list呢:  如 ...

    java_spi_demo

    典型的是Collections.sort(List list,Comparator&lt;? super T&gt; c)这个方法,它的第二个参数是一个实现Comparator接口的实例。我们可以根据自己的排序规则写一个类,实现此接口,传入此方法,那么这个方法就会根据...

Global site tag (gtag.js) - Google Analytics