Java 列表排序

在 Java 中对列表进行排序

在前面的章节中,您学习了如何使用 Java 中两种流行的列表:ArrayList 和 LinkedList,它们都位于 java.util 包中。

java.util 包中的另一个有用的类是 Collections 类,它包含了用于按字母顺序或数字顺序对列表进行排序的 sort() 方法。

对 ArrayList 进行排序

按字母升序对字符串 ArrayList 进行排序:

实例

import java.util.ArrayList;
import java.util.Collections;  // 导入 Collections 类
 
public class Main {
  public static void main(String[] args) {
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
 
    Collections.sort(cars);  // 对 cars 进行排序
 
    for (String car : cars) {
      System.out.println(car);
    }
  }
}

亲自试一试

按数字升序对整数 ArrayList 进行排序:

实例

import java.util.ArrayList;
import java.util.Collections;  // 导入 Collections 类
 
public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> myNumbers = new ArrayList<Integer>();
    myNumbers.add(33);
    myNumbers.add(15);
    myNumbers.add(20);
    myNumbers.add(34);
    myNumbers.add(8);
    myNumbers.add(12);
 
    Collections.sort(myNumbers);  // 对 myNumbers 进行排序
 
    for (int number : myNumbers) {
      System.out.println(number);
    }
  }
}

亲自试一试

逆序排序

您还可以使用 reverseOrder() 方法对列表进行逆序排序。

在下面的例子中,我们按字母逆序/降序对字符串 ArrayList 进行排序:

实例

import java.util.ArrayList;
import java.util.Collections;  // 导入 Collections 类
 
public class Main {
  public static void main(String[] args) {
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
 
    Collections.sort(cars, Collections.reverseOrder());  // 对 cars 进行逆序排序
 
    for (String car : cars) {
      System.out.println(car);
    }
  }
}

亲自试一试

按数字逆序/降序对整数 ArrayList 进行排序:

实例

import java.util.ArrayList;
import java.util.Collections;  // 导入 Collections 类
 
public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> myNumbers = new ArrayList<Integer>();
    myNumbers.add(33);
    myNumbers.add(15);
    myNumbers.add(20);
    myNumbers.add(34);
    myNumbers.add(8);
    myNumbers.add(12);
 
    Collections.sort(myNumbers, Collections.reverseOrder());  // 对 myNumbers 进行逆序排序
 
    for (int number : myNumbers) {
      System.out.println(number);
    }
  }
}

亲自试一试