ArrayList排序详解(2种主流排序方式)

ArrayList排序详解(2种主流排序方式)-mikechen

ArrayList排序在Java集合中经常使用,下面就详解ArrayList排序的方式,主要会包含2种ArrayList排序方式。

第一种:ArrayList默认排序方式

Java中对ArrayList 进行排序,可以使用 Collections.sort() 方法,Collections.sort() 方法接受一个列表作为参数,并将该列表按升序排序。

下面是一个示例代码,展示如何使用 Collections.sort() 方法对 ArrayList 进行排序:

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListSort {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<Integer>();
        numbers.add(3);
        numbers.add(1);
        numbers.add(4);
        numbers.add(2);

        System.out.println("Before sorting: " + numbers);

        Collections.sort(numbers);

        System.out.println("After sorting: " + numbers);
    }
}

输出:

Before sorting: [3, 1, 4, 2]
After sorting: [1, 2, 3, 4]

在上面的示例中,我们首先创建了一个 ArrayList 对象,并向其中添加了一些整数,然后,我们使用 Collections.sort() 方法对 ArrayList 进行排序,并输出排序后的结果。

 

第二种:ArrayList自定义排序

如果要对自定义对象进行排序,需要确保对象实现了 Comparable 接口,并重写 compareTo() 方法。

示例如下:

import java.util.ArrayList;
import java.util.Collections;

class Person implements Comparable<Person> {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public int compareTo(Person other) {
        if (this.age < other.age) {
            return -1;
        } else if (this.age > other.age) {
            return 1;
        } else {
            return 0;
        }
    }
}

public class ArrayListSort {
    public static void main(String[] args) {
        ArrayList<Person> people = new ArrayList<>();
        people.add(new Person("Alice", 25));
        people.add(new Person("Bob", 30));
        people.add(new Person("Charlie", 20));
        people.add(new Person("David", 25));

        System.out.println("Before sorting:");
        for (Person p : people) {
            System.out.println(p.getName() + " " + p.getAge());
        }

        Collections.sort(people);

        System.out.println("\nAfter sorting:");
        for (Person p : people) {
            System.out.println(p.getName() + " " + p.getAge());
        }
    }
}

在上面的示例中,我们创建了一个 Person 类,实现了 Comparable<Person> 接口,并重写了 compareTo() 方法。compareTo() 方法根据人的年龄比较两个人之间的顺序关系。

最后,我们使用 Collections.sort() 方法对 ArrayList 进行排序,并输出排序后的结果。

以上就是ArrayList排序的2种实现方式,更多关于ArrayList,请查看:ArrayList全面详解(看这篇就够了)

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法