`
Merrygrass
  • 浏览: 166530 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

[转]java List 排序 Collections.sort

阅读更多
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. }  
/**
* 根据order对User排序
*/
public class User implements Comparable<User>{
    private String name;
    private Integer order;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getOrder() {
        return order;
    }
    public void setOrder(Integer order) {
        this.order = order;
    }
    public int compareTo(User arg0) {
        return this.getOrder().compareTo(arg0.getOrder());
    }
}

public class Test{
    public static void main(String[] args) {
         User user1 = new User();
         user1.setName("a"); user1.setOrder(1); 
         User user2 = new User(); user2.setName("b");
         user2.setOrder(2); 
         List<User> list = new ArrayList<User>(); 
        //此处add user2再add user1 
        list.add(user2); list.add(user1); 
        Collections.sort(list); 
        for(User u : list){ 
            System.out.println(u.getName()); 
        } 
    } 
}


输出结果如下
a
b
第二种方法是根据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());   

就成倒序的了。。

分享到:
评论
1 楼 cw881014 2011-03-09  
那我要是有10000个User我也new 10000个User么?

相关推荐

    java List 排序 Collections.sort

    总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...

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

    Java Collections.sort()实现List排序的默认方法和自定义方法 Java Collections.sort()是Java语言中用于对List进行排序的方法,通过使用这个方法可以对List进行默认排序,也可以根据需要实现自定义的排序规则。 ...

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

    在Java编程语言中,`Collections.sort()` 方法是一个非常重要的工具,用于对List接口实现的集合进行排序。这个方法使得开发者能够方便地按照指定的顺序排列集合中的元素。本篇文章将详细探讨如何使用 `Collections....

    java中Collections.sort排序详解

    Java中Collections.sort排序详解 Java中的Collections.sort排序是Java.util.Collections类中的一个静态方法,用于对列表进行排序。下面将详细介绍Collections.sort排序的使用和实现机制。 Collections.sort()方法...

    Java Arrays.sort和Collections.sort排序实现原理解析

    Java中的`Arrays.sort()`和`Collections.sort()`是两个常用的排序函数,它们分别用于对数组和集合进行排序。这两个函数在内部实现上有所不同,但都基于高效的排序算法。 首先,`Collections.sort()`方法在处理列表...

    java中Collections.sort排序函数用法详解

    在Java编程语言中,`Collections.sort()` 是一个非常重要的函数,它用于对集合中的元素进行排序。这个函数是 `java.util.Collections` 类的一个静态方法,适用于列表(List)类型的集合。`Collections.sort()` 可以...

    详解Java中Collections.sort排序

    在Java编程语言中,`Collections.sort()`方法是一个非常重要的工具,它用于对集合中的元素进行排序。这个方法主要应用于`List`接口的实现类,如`ArrayList`和`LinkedList`等。`Collections.sort()`有两种主要的排序...

    Java Collections.sort()排序代码案例

    Java Collections.sort() 排序代码案例是 Java Collections 框架中一个非常重要的排序算法,通过本文,我们将深入探讨 Java Collections.sort() 排序代码案例的实现细节,并对其进行详细的解释。 Java Collections...

    java 使用Collections类对List的排序操作

    总的来说,`Collections` 类提供的排序功能使得在 Java 中对 `List` 进行操作变得更加便捷,无论是自然排序还是定制排序,都可以轻松实现。同时,随着 Java 8 及更高版本的引入,流API也提供了新的排序方式,开发者...

    金陵科技学院软件院大二上Java高级1215Collections.docx

    在示例中,`Collections.sort(list)`按照默认的自然顺序对元素进行排序,使得`list`变为"123", "123", "aaa", "abc", "xyz"。 3. **`Collections.shuffle(List&lt;T&gt; list, Random rnd)`**:这个方法将列表中的元素...

    详解java Collections.sort的两种用法

    Java Collections.sort 是 Java 集合框架中的一种静态方法,用于对 List 类型进行排序。该方法有两种参数形式,分别是对基本类型和自定义类的排序。在本文中,我们将通过示例代码来详细介绍这两种用法。 基本类型的...

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

    本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现Comparable接口。Comparable接口定义了一个自然排序的规则,使得实现了该接口的类的对象可以进行比较并排序。...

    Java 对象排序详解.rar_java 对象排序_对象_排序

    总的来说,Java提供了多种方式对对象进行排序,包括ArrayList的`Collections.sort()`,HashSet的转换和排序,以及TreeSet的自然排序和Comparator排序。理解这些机制可以帮助我们更好地控制数据结构的排序行为,从而...

    java日期排序.docx

    Collections.sort 方法可以对 List 对象中的元素进行排序,包括日期字符串。 示例代码 下面是一个使用 Java 进行日期排序的示例代码: import java.util.ArrayList; import java.util.Collections; import java....

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

    在Java编程中,Collections工具类提供了许多方便的集合操作,其中`sort()`方法是一个非常重要的功能,用于对List类型的集合进行排序。本文将详细介绍`Collections.sort()`方法的两种使用方式及其示例。 ### 一、...

    java集合某个字段按照中文拼音排序.docx

    然后,我们可以使用Collections.sort()方法来排序列表。 ```java List&lt;Record&gt; list = new ArrayList(); // 添加记录到列表中 Collections.sort(list); ``` 方法二:使用Comparator接口和Collator类 在Java中,...

    listview按序排列显示

    `Collections.sort()`是Java中对List进行排序的方法,它接受一个List作为参数,并根据List中元素的自然顺序或者自定义比较器进行排序。在这个例子中,Map的键(key)通常是字符串或其他实现了Comparable接口的对象,...

    Java Generics and Collections.chm

    例如,`Collections.sort()` 可用于对列表进行排序,`Map.merge()` 可以原子性地更新键值对。 通过深入学习《Java Generics and Collections》,开发者不仅可以掌握如何编写类型安全的代码,还能有效地组织和操作...

    java中的排序.ppt

    Java 中的 Arrays 类提供了对这些类型的 sort 方法,可以用来对简单类型的数组进行排序。例如: ```java int[] arr = {2, 3, 1, 10, 7, 4}; System.out.print("before sort: "); for (int i = 0; i &lt; arr.length; i...

    Java Collections.pdf

    例如,Collections.sort()方法可以对List进行排序,而Collections.synchronizedXXX()方法则可以帮助我们创建线程安全的集合。 在实际开发中,选择合适的集合类型和方法至关重要。例如,当我们需要保持元素插入顺序...

Global site tag (gtag.js) - Google Analytics