当前位置:首页 > 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

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

按字符串长度排序

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
分享给朋友:

相关文章

vue实现检测数组

vue实现检测数组

检测数组变化的方法 在Vue中,可以通过多种方式检测数组的变化。Vue本身对数组的某些方法进行了响应式处理,但某些情况下需要手动触发更新或使用特定方法。 使用Vue.set或this.$set 对于…

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import j…

java如何创建线程

java如何创建线程

创建线程的方法 在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法可以创建线程。…

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

如何打开java

如何打开java

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