当前位置:首页 > 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接口实现自定义排序逻辑,例如降序或按特定字段排序。

java数组如何排序

降序排列

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

按对象属性排序

java数组如何排序

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); // 并行排序

手动实现排序算法

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

快速排序示例

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环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

java如何导入jar包

java如何导入jar包

在Eclipse中导入JAR包 右键项目 -> 选择"Properties" -> 左侧导航选择"Java Build Path" -> 切换到"Libraries"标签 ->…

如何选择java培训

如何选择java培训

评估培训机构资质 选择有正规资质的机构,查看其营业执照、办学许可证等。优先考虑具备人力资源和社会保障部或教育部认证的机构,这类机构的教学质量和课程设置通常更规范。 考察课程内容与行业需求匹配度…

java如何遍历数组

java如何遍历数组

遍历数组的方法 Java中遍历数组有多种方式,以下是常见的几种方法: 使用for循环 通过索引逐个访问数组元素: int[] array = {1, 2, 3, 4, 5}; for (int i…

java如何实现多继承

java如何实现多继承

在Java中,由于语言设计本身不支持多继承(即一个类不能直接继承多个父类),但可以通过以下方式间接实现类似多继承的效果: 使用接口实现多继承 接口允许一个类实现多个接口,从而继承多个抽象行为。接口中…