跳到主要内容

Java ArrayList sort() 方法

sort() 方法按照指定的顺序对 arraylist 中的元素进行排序。

示例

import java.util.ArrayList;
import java.util.Comparator;

class Main {
public static void main(String[] args) {

// 创建一个 ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(7);
numbers.add(3);
numbers.add(9);
numbers.add(-33);
System.out.println("未排序的 ArrayList: " + numbers);

// 按升序对 ArrayList 进行排序
numbers.sort(Comparator.naturalOrder());

System.out.println("已排序的 ArrayList: " + numbers);
}
}

// 输出:未排序的 ArrayList: [7, 3, 9, -33]
// 已排序的 ArrayList: [-33, 3, 7, 9]

ArrayList sort() 的语法

sort() 方法的语法是:

arraylist.sort(Comparator c)

这里,arraylistArrayList 类的一个对象。

sort() 参数

sort() 方法接受单个参数。

  • comparator - 指定 arraylist 的排序顺序

sort() 返回值

sort() 方法不返回任何值。它只改变 arraylist 中元素的顺序。

示例 1:按自然顺序对 ArrayList 进行排序

import java.util.ArrayList;
import java.util.Comparator;

class Main {
public static void main(String[] args) {

// 创建一个 ArrayList
ArrayList<String> languages = new ArrayList<>();

// 向 ArrayList 添加元素
languages.add("Python");
languages.add("Swift");
languages.add("C");
languages.add("JavaScript");
System.out.println("未排序的 ArrayList: " + languages);

// 按升序对 ArrayList 进行排序
languages.sort(Comparator.naturalOrder());

System.out.println("已排序的 ArrayList: " + languages);
}
}

输出

未排序的 ArrayList: [Python, Swift, C, JavaScript]
已排序的 ArrayList: [C, JavaScript, Python, Swift]

在上述示例中,我们使用了 sort() 方法对名为 languages 的 arraylist 进行排序。注意这一行,

languages.sort(Comparator.naturalOrder());

这里,Java Comparator 接口naturalOrder() 方法指定元素按自然顺序(即升序)排序。

Comparator 接口还提供了一种方法来按降序对元素进行排序。例如,

示例 2:按逆序对 ArrayList 进行排序

import java.util.ArrayList;
import java.util.Comparator;

class Main {
public static void main(String[] args) {

// 创建一个 ArrayList
ArrayList<String> languages = new ArrayList<>();

// 向 ArrayList 添加元素
languages.add("Python");
languages.add("Swift");
languages.add("C");
languages.add("JavaScript");
System.out.println("未排序的 ArrayList: " + languages);

// 按降序对 ArrayList 进行排序
languages.sort(Comparator.reverseOrder());

System.out.println("已排序的 ArrayList: " + languages);
}
}

输出

未排序的 ArrayList: [Python, Swift, C, JavaScript]
已排序的 ArrayList: [Swift, Python, JavaScript, C]

这里,Comparator 接口的 reverseOrder() 方法指定元素按逆序(即降序)排序。

注意Collections.sort() 方法是对 arraylist 进行排序的更方便的方法。