arrays工具类提供静态方法简化java数组操作:支持快速填充(fill、setall)、内容比较(equals、deepequals)、排序与查找(sort、binarysearch)、转字符串(tostring、deeptostring)及转list(aslist)。

Java中数组操作常需手动遍历、比较或排序,容易出错且代码冗长。Arrays工具类提供了大量静态方法,能大幅简化常见操作,提升可读性和健壮性。
快速初始化与填充数组
避免逐个赋值或写循环,用Arrays.fill()统一设值,或用Arrays.setAll()按索引生成元素。
- Arrays.fill(arr, 0):将整型数组所有元素设为0
- Arrays.fill(arr, fromIndex, toIndex, value):仅填充指定范围
- Arrays.setAll(arr, i -> i * i):让arr[i] = i²,适合有规律的初始化
高效比较与判等
直接用==比较数组引用毫无意义;用Arrays.equals()判断内容是否相同,支持多维数组(用deepEquals())。
- 一维数组:Arrays.equals(a, b) 返回true当且仅当长度相等且每个对应元素equals()为true
- 二维数组:Arrays.deepEquals(a, b) 递归比较内部数组,比手写嵌套循环安全得多
- 注意:对含null的数组也适用,不会抛NullPointerException
排序与二分查找一步到位
Arrays.sort()支持基本类型和对象数组(后者需实现Comparable或传Comparator),排完直接用Arrays.binarySearch()查位置。
- 基本类型升序:Arrays.sort(arr)
- 自定义排序:Arrays.sort(arr, Comparator.comparing(Student::getScore).reversed())
- 查找前必须已排序,否则结果不可靠;返回索引或负数插入点
转字符串与转列表更直观
调试时打印数组不再需要自己写for循环;生产环境转换为List也无需额外依赖。
- Arrays.toString(arr) 输出[1, 2, 3]格式,对嵌套数组用deepToString()
- Arrays.asList(arr) 返回固定大小的List(注意:基本类型数组会整体作为单个元素!)
- 若需真正可变List,写成new ArrayList(Arrays.asList(boxedArr)),其中boxedArr是包装类型数组
不复杂但容易忽略——多数数组操作,Arrays类都已封装好,调用前花半秒查下Javadoc,省下的不仅是代码行数,更是潜在bug。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











