当前位置:首页 > 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); // 并行排序

部分数组排序

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

java数组如何排序

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

相关文章

vue实现数组

vue实现数组

Vue 实现数组操作的方法 在 Vue 中,数组的操作需要特别注意响应式的问题。Vue 提供了一些方法来确保数组的变动能够触发视图更新。 响应式数组方法 Vue 对以下数组方法进行了封装,确保它们能…

java如何打开

java如何打开

安装Java开发环境 下载并安装Java Development Kit (JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH变量正…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

java如何输入数据

java如何输入数据

输入数据的方法 在Java中,输入数据可以通过多种方式实现,具体取决于输入来源(如控制台、文件、网络等)。以下是几种常见的方法: 使用Scanner类从控制台输入 Scanner类是Java中最常用…

java如何声明数组

java如何声明数组

声明数组的基本语法 在Java中,数组的声明需要指定数据类型和数组名称,并可通过以下两种方式完成: 数据类型[] 数组名(推荐) int[] numbers; String[] names…

java如何创建测试类

java如何创建测试类

创建测试类的基本步骤 在Java中创建测试类通常使用JUnit框架,以下是具体方法: 安装JUnit依赖 对于Maven项目,在pom.xml中添加依赖: <dependency>…