当前位置:首页 > Java

java数组如何排序

2026-04-09 03:19:30Java

使用Arrays.sort()方法

Java中Arrays.sort()是最简单的数组排序方法,适用于基本类型和对象数组。

基本类型数组排序(升序)

int[] arr = {5, 2, 9, 1, 5};
Arrays.sort(arr); // 结果为 [1, 2, 5, 5, 9]

对象数组排序(需实现Comparable或自定义Comparator)

String[] strArr = {"banana", "apple", "pear"};
Arrays.sort(strArr); // 按字典序升序排列

自定义排序规则(Comparator)

通过Comparator接口实现自定义排序逻辑,例如降序或按特定字段排序。

降序排列

Integer[] arr = {5, 2, 9, 1, 5};
Arrays.sort(arr, (a, b) -> b - a); // 结果为 [9, 5, 5, 2, 1]

按对象属性排序

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

Person[] people = {new Person("Alice", 30), new Person("Bob", 25)};
Arrays.sort(people, (p1, p2) -> p1.age - p2.age); // 按年龄升序

并行排序(Arrays.parallelSort())

对于大型数组,可以使用并行排序提高性能。

int[] largeArr = new int[1000000];
Arrays.parallelSort(largeArr); // 并行排序

手动实现排序算法

如需完全控制排序过程,可手动实现算法(如快速排序、冒泡排序)。

快速排序示例

java数组如何排序

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

注意事项

  • 对象数组:必须实现Comparable接口或提供Comparator,否则会抛出ClassCastException
  • 稳定性Arrays.sort()对对象数组使用稳定排序(归并排序),基本类型数组使用快速排序。
  • 性能parallelSort()在多核环境下对大数组(>1万元素)更高效。

标签: 数组java
分享给朋友:

相关文章

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

如何编译java文件

如何编译java文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

java如何解决高并发

java如何解决高并发

Java 高并发解决方案 使用线程池优化资源管理 线程池(如 ThreadPoolExecutor)能避免频繁创建和销毁线程的开销。通过核心线程数、最大线程数和任务队列的合理配置,可以平衡系统负载。例…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…