Java Arrays工具类提供sort()、fill()、binarySearch()等静态方法,支持高效排序(双轴快排/TimSort)、批量填充和二分查找,使用时需注意类型匹配、已排序前提及区间开闭规则。

Java 的 Arrays 工具类提供了大量静态方法,能让你跳过手写排序、遍历填充或查找逻辑,直接用一行代码完成常见数组操作。关键在于选对方法、注意类型匹配和前提条件。
排序:用 sort() 一步到位
支持基本类型和对象数组,底层使用双轴快排(基本类型)或 TimSort(引用类型),性能可靠。
- 基本类型直接调用:
Arrays.sort(intArr)、Arrays.sort(doubleArr) - 对象数组需实现
Comparable,或传入Comparator:Arrays.sort(strArr, String.CASE_INSENSITIVE_ORDER) - 只排序部分范围:用重载方法
sort(array, fromIndex, toIndex),注意toIndex是开区间
填充:用 fill() 批量赋值
比 for 循环简洁,尤其适合初始化或重置数组内容。
- 全部填充同一值:
Arrays.fill(intArr, -1)、Arrays.fill(objArr, null) - 指定区间填充:
Arrays.fill(arr, 2, 5, 99)表示索引 2、3、4 位置设为 99 - 对象数组可填任意引用,包括
new Person("A"),但注意所有元素指向同一对象实例
二分查找:用 binarySearch() 前提是已排序
不是万能搜索工具——必须确保数组已升序排列,否则结果无意义。
- 查到返回索引(>=0),查不到返回负数(表示应插入位置的补码)
- 对象查找需保证数组按同一规则排序,且
binarySearch使用的Comparator必须与排序时一致 - 查找子范围:
binarySearch(arr, from, to, key),同样注意to是开区间
小技巧:配合 toString() 和 deepToString() 调试
排序或填充后快速验证结果,避免手动遍历打印。
-
System.out.println(Arrays.toString(intArr))→ 输出[1, 2, 3] - 二维数组用
Arrays.deepToString(arr2D),否则只显示哈希值 - 结合断言或单元测试时,可用
assert Arrays.equals(expected, actual)校验结果

















