当前位置:首页 > Java

如何用java排序

2026-03-23 10:18:52Java

使用 Java 内置排序方法

Java 提供了多种内置的排序方法,适用于数组和集合。

数组排序
使用 Arrays.sort() 方法对数组进行排序:

import java.util.Arrays;

int[] numbers = {5, 3, 9, 1, 6};
Arrays.sort(numbers); // 升序排序
System.out.println(Arrays.toString(numbers)); // 输出 [1, 3, 5, 6, 9]

集合排序
使用 Collections.sort() 方法对 List 进行排序:

如何用java排序

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

List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 9, 1, 6));
Collections.sort(numbers); // 升序排序
System.out.println(numbers); // 输出 [1, 3, 5, 6, 9]

自定义排序规则

可以通过 Comparator 接口定义自定义排序规则。

降序排序

如何用java排序

Arrays.sort(numbers, Collections.reverseOrder()); // 数组降序(需 Integer[])
Collections.sort(numbers, Collections.reverseOrder()); // 集合降序

自定义对象排序
假设有一个 Person 类,按 age 排序:

class Person {
    String name;
    int age;
    // 构造方法、Getter/Setter 省略
}

List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 20));

// 按年龄升序
Collections.sort(people, Comparator.comparingInt(Person::getAge));

// 按年龄降序
Collections.sort(people, Comparator.comparingInt(Person::getAge).reversed());

使用 Java 8 Stream 排序

利用 Stream API 进行排序:

List<Integer> numbers = Arrays.asList(5, 3, 9, 1, 6);
List<Integer> sorted = numbers.stream()
                             .sorted() // 升序
                             .collect(Collectors.toList());

List<Integer> reversed = numbers.stream()
                               .sorted(Comparator.reverseOrder()) // 降序
                               .collect(Collectors.toList());

实现自定义排序算法

如果需要手动实现排序算法(如快速排序、归并排序),以下是快速排序的示例:

public static void quickSort(int[] arr, int low, int high) {
    if (low < high) {
        int pivot = partition(arr, low, high);
        quickSort(arr, low, pivot - 1);
        quickSort(arr, pivot + 1, high);
    }
}

private static int partition(int[] arr, int low, int high) {
    int pivot = arr[high];
    int i = low - 1;
    for (int j = low; j < high; j++) {
        if (arr[j] < pivot) {
            i++;
            swap(arr, i, j);
        }
    }
    swap(arr, i + 1, high);
    return i + 1;
}

private static void swap(int[] arr, int i, int j) {
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

总结

  • 内置方法:Arrays.sort()Collections.sort() 适用于大多数场景。
  • 自定义排序:通过 Comparator 实现灵活排序规则。
  • Stream API:适合函数式编程风格的排序。
  • 手动实现:理解算法原理时可用,但生产环境建议优先使用内置方法。

标签: 如何用java
分享给朋友:

相关文章

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何导包

java如何导包

导入包的方法 在Java中,导入包(package)可以通过import语句实现,用于引入其他类或包中的功能。以下是几种常见的导包方式: 导入单个类 import java.util.ArrayL…