当前位置:首页 > Java

java数组如何排序

2026-02-04 19:03:16Java

使用Arrays.sort()方法

Java提供了Arrays.sort()方法,可以对数组进行排序。该方法支持对基本类型数组和对象数组进行排序。

基本类型数组排序

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

对象数组排序
对象数组需要实现Comparable接口或传入自定义的Comparator

String[] names = {"Alice", "Bob", "Charlie"};
Arrays.sort(names); // 按字典序升序排序
System.out.println(Arrays.toString(names)); // 输出:[Alice, Bob, Charlie]

降序排序
可以使用Collections.reverseOrder()或自定义Comparator

java数组如何排序

Integer[] numbers = {5, 2, 9, 1, 5};
Arrays.sort(numbers, Collections.reverseOrder()); // 降序排序
System.out.println(Arrays.toString(numbers)); // 输出:[9, 5, 5, 2, 1]

自定义Comparator排序

对于复杂对象或特殊排序需求,可以传入自定义Comparator

按字符串长度排序

java数组如何排序

String[] names = {"Alice", "Bob", "Charlie"};
Arrays.sort(names, (a, b) -> a.length() - b.length()); // 按长度升序
System.out.println(Arrays.toString(names)); // 输出:[Bob, Alice, Charlie]

按对象属性排序

class Person {
    String name;
    int age;
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Person[] people = {
    new Person("Alice", 25),
    new Person("Bob", 20),
    new Person("Charlie", 30)
};

Arrays.sort(people, (a, b) -> a.age - b.age); // 按年龄升序
for (Person p : people) {
    System.out.println(p.name + ": " + p.age);
}
// 输出:
// Bob: 20
// Alice: 25
// Charlie: 30

并行排序

对于大型数组,可以使用Arrays.parallelSort()提高性能。

int[] largeArray = new int[1000000];
// 填充数组...
Arrays.parallelSort(largeArray); // 并行排序

部分数组排序

可以指定排序的范围,仅对数组的一部分进行排序。

int[] numbers = {5, 2, 9, 1, 5, 8};
Arrays.sort(numbers, 1, 4); // 对索引1到3(不包括4)排序
System.out.println(Arrays.toString(numbers)); // 输出:[5, 1, 2, 9, 5, 8]

注意事项

  • 基本类型数组(如int[]double[])默认按升序排序。
  • 对象数组需要实现Comparable或传入Comparator
  • Arrays.sort()使用双轴快速排序(基本类型)或TimSort(对象类型)。
  • 并行排序适合大数据量,但小数组可能性能不如普通排序。

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

相关文章

如何打开java

如何打开java

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

java如何输出数组

java如何输出数组

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

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io.Fil…

如何编写java

如何编写java

编写Java程序的基本步骤 安装Java开发工具包(JDK),确保系统环境变量配置正确。可以从Oracle官网下载最新版本的JDK并进行安装。 选择一个合适的集成开发环境(IDE),如Eclipse…

java中如何定义数组

java中如何定义数组

定义数组的基本语法 在Java中,数组是固定长度的同类型数据集合。定义数组需指定数据类型和数组名称,可通过两种方式声明: 数据类型[] 数组名;数据类型 数组名[]; 推荐使用第一种方式,更符合Ja…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…