arrays.sort是java中对基本类型数组(如int[]、double[]等)进行升序排序的最常用方法,原地排序、高效稳定;但不支持直接降序,且integer[]与int[]排序机制不同。

Arrays.sort 是 Java 中最常用、最直接的数组排序方法,对数字数组(如 int[]、double[] 等)升序排序只需一行代码。
基本用法:直接调用 sort 方法
对于基本类型数组(如 int[]),Arrays.sort() 默认就是升序排列,无需额外参数。
- 适用于所有基本数字类型:int、long、short、byte、float、double
- 原地排序(in-place),直接修改原数组,不返回新数组
- 底层使用双轴快排(针对 int/long/short/byte)或归并排序(针对 float/double),高效且稳定
示例:
int[] nums = {5, 2, 8, 1, 9};Arrays.sort(nums); // 执行后 nums 变为 [1, 2, 5, 8, 9]
注意:不要对 Integer[] 混淆基本类型和包装类
Integer[] 是引用类型数组,虽然也能用 Arrays.sort(),但默认行为不同:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
-
int[]→ 使用优化的快速排序,纯升序 -
Integer[]→ 使用稳定归并排序,默认按自然顺序升序,但支持自定义 Comparator
如果误把 int[] 转成 Integer[] 再排序,会多一次装箱开销,没必要。
需要降序?基本类型不能直接实现
基本类型数组(如 int[])不支持传入 Comparator,所以无法直接降序。常见解决方式:
- 先升序排序,再手动翻转数组(适合小数组)
- 转为
Integer[],再用Comparator.reverseOrder() - 用 Stream(Java 8+):Arrays.stream(arr).boxed().sorted(Collections.reverseOrder()).mapToInt(i -> i).toArray()
但除非必要,升序就用 Arrays.sort(arr),简洁又高效。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










