当前位置:首页 > 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如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…