当前位置:首页 > Java

java 如何排序

2026-03-19 21:24:59Java

排序方法概述

Java提供了多种排序方式,适用于不同场景和数据类型。常见方法包括使用内置工具类、自定义排序规则以及实现特定算法。

使用Arrays.sort()排序数组

对于基本类型数组和对象数组,java.util.Arrays类提供了静态方法sort()。基本类型数组按数值升序排列,对象数组默认按自然顺序排序(需实现Comparable接口)。

java   如何排序

int[] intArray = {5, 2, 9, 1, 5};
Arrays.sort(intArray); // 排序后: [1, 2, 5, 5, 9]

String[] strArray = {"Banana", "Apple", "Orange"};
Arrays.sort(strArray); // 排序后: ["Apple", "Banana", "Orange"]

使用Collections.sort()排序列表

List集合排序可使用java.util.Collections.sort()方法。默认按自然顺序排序,或通过Comparator自定义规则。

List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5);
Collections.sort(numbers); // 排序后: [1, 1, 3, 4, 5]

List<String> words = Arrays.asList("cat", "dog", "bird");
Collections.sort(words, (a, b) -> a.length() - b.length()); // 按字符串长度排序

自定义Comparator实现复杂排序

通过实现Comparator接口,可定义灵活的比较逻辑。例如对对象按多字段排序:

java   如何排序

class Person {
    String name;
    int age;
    // 构造方法和getter省略
}

List<Person> people = Arrays.asList(
    new Person("Alice", 30),
    new Person("Bob", 25)
);

Collections.sort(people, Comparator
    .comparing(Person::getAge)
    .thenComparing(Person::getName));

使用Stream API排序

Java 8+的Stream API支持链式操作和函数式排序:

List<String> fruits = Arrays.asList("Pear", "Apple", "Melon");
List<String> sortedFruits = fruits.stream()
    .sorted() // 自然排序
    .collect(Collectors.toList());

List<Integer> nums = Arrays.asList(3, 1, 4);
List<Integer> descNums = nums.stream()
    .sorted(Comparator.reverseOrder()) // 降序排序
    .collect(Collectors.toList());

实现自定义排序算法

如需特定算法(如快速排序、归并排序),可手动实现:

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);
    }
}

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;
}

标签: java
分享给朋友:

相关文章

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何生成随机数

java如何生成随机数

生成随机数的方法 在Java中生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random()方法 Math.random()方法返回一个double类型的伪随机数,范围在[0…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…