`

java中Collections.sort() 排序函数的用法

    博客分类:
  • Java
阅读更多

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

1.实现Comparable接口

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;
    }
    /**
     * 根据order对User排序
     */
    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>();
        list.add(user2);
        list.add(user1);
        
        Collections.sort(list);
        for(User u : list){
            System.out.println(u.getName());
        }
    }
}

 2.Collections.sort重载

public class 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 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>();
        list.add(user2);
        list.add(user1);
       
        Collections.sort(list,new Comparator<User>(){
            public int compare(User arg0, User arg1) {
                return arg0.getOrder().compareTo(arg1.getOrder());
            }
        });
        for(User u : list){
            System.out.println(u.getName());
        }
    }
}

 前者代码结构简单,但是只能根据固定的属性排序,后者灵活,可以临时指定排序项,但是代码不够简洁

分享到:
评论

相关推荐

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

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

    java中Collections.sort排序详解

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

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

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

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

    在Java编程中,集合框架是处理数据的重要工具,而Collections.sort方法则是对列表(List)进行排序的关键函数。本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现...

    listview按序排列显示

    在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...

    java sort排序算法实例完整代码

    Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。...

    Java-Java函数式编程教程

    例如,Collections.sort()方法接受一个Comparator实例,这是一个高阶函数的例子,因为它接受一个函数作为参数来定义元素的排序顺序。 6. **函数式编程的优点**: - 更少的副作用:函数式编程倾向于避免改变状态,...

    Java Generics and Collections.chm

    《Java Generics and Collections》是Java开发者必备的参考资料,它深入探讨了Java编程中的泛型(Generics)和集合(Collections)这两个核心概念。在Java编程中,泛型和集合框架是提高代码效率、可读性和类型安全性...

    Java实现类排序

    Java中的排序主要依赖于`java.util.Arrays`类和`java.util.Collections`类提供的方法。对于数组,我们可以使用`Arrays.sort()`方法;对于集合,我们可以使用`Collections.sort()`方法。这两个方法都可以对基本类型和...

    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排序方法.pdf

    这个文档“java排序方法.pdf”涵盖了多种经典的排序算法的实现,包括插入排序、冒泡排序、选择排序、Shell排序以及更高效的快速排序、归并排序和堆排序。下面我们将详细探讨这些排序算法。 1. **插入排序(Insertion...

    JAVA中的随机数产生和排序

    Java标准库提供了多种排序算法,最常用的是 `Arrays.sort()` 和 `Collections.sort()` 方法,分别用于数组和集合对象的排序。这些方法底层实现的是快速排序、归并排序或插入排序等高效算法。 对于自定义对象的排序...

    java performance12

    这里提到了可以使用 `java.util.Arrays` 和 `java.util.Collections` 提供的方法来实现高效拷贝。下面详细介绍这两种方法: - **使用 `java.util.Arrays.copyOf()`:** `java.util.Arrays.copyOf()` 方法是拷贝...

    Java容易被忽视的API

    `java.util.Arrays.sort()` 和 `java.util.Collections.sort()` 是两个主要的排序函数,它们提供了多种重载形式,以适应不同的数据类型和排序需求。 1. `Arrays.sort(int[])` 和 `Arrays.sort(int[], int, int)` ...

    java中LinkedList任意排序实例

    为了实现任意排序,我们需要使用`Collections.sort()`方法,这个方法接受一个列表和一个比较器。比较器可以是内置的,也可以是我们自定义的。以下是一个自定义比较器Comparator的例子,用于根据员工的身高排序: ``...

    Collections集合工具类排序.docx

    首先,`sort(List&lt;T&gt; list)`方法是Collections工具类中最常用的排序方法之一,它根据列表中元素的自然排序(natural ordering)来对列表进行排序。自然排序是指列表中的元素必须实现Comparable接口,该接口定义了一...

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

    Collections.sort()是Java中的一种静态方法,用于对集合进行排序。Collections.sort()方法可以对List、Set等集合进行排序,按照自然顺序或自定义的Comparator进行排序。 知识点6:foreach foreach是Java中的一种...

    28个java常用的工具类

    1. **`java.util.Arrays`**: 这个类提供了对数组进行排序、查找、复制等操作的方法,如`Arrays.sort()`用于排序数组,`Arrays.asList()`将数组转换为列表。 2. **`java.util.Collections`**: 类似于`Arrays`,但...

    77丨开源实战一(下):通过剖析JavaJDK源码学习灵活应用设计模式1

    在本节课程中,我们将深入探讨模板模式以及其在Java JDK中的实际应用,特别是通过分析Collections.sort()函数的实现。模板模式是一种行为设计模式,它允许我们在定义算法的骨架的同时,延迟部分步骤的具体实现,使得...

    JAVA_比较器讲解

    - 当我们使用`Collections.sort()`或`Arrays.sort()`方法对对象列表或数组进行排序时,如果默认的自然顺序不适合我们的需求,就可以提供一个实现了`Comparator`接口的类实例作为参数,自定义比较规则。 2. 使用...

Global site tag (gtag.js) - Google Analytics