arrays.fill()是java中高效初始化数组元素的工具,支持全数组或指定范围填充,类型覆盖基本类型与对象数组,但对象数组填充的是同一引用,二维数组需逐行调用。

Java中Arrays.fill()方法是快速为数组所有元素赋相同初始值的高效工具,无需循环,简洁且语义清晰。
fill方法的基本用法
该方法重载多个版本,最常用的是针对一维基本类型数组和对象数组:
-
Arrays.fill(int[] a, int val):将int数组所有元素设为val -
Arrays.fill(double[] a, double val):同理适用于double、boolean、char等基本类型 -
Arrays.fill(Object[] a, Object val):用于引用类型数组(如String[])
指定范围填充(按需定制)
若只需初始化数组某一段,可用带起始与结束索引的重载版本:
Arrays.fill(arr, fromIndex, toIndex, value)-
fromIndex包含,toIndex不包含(即左闭右开区间) - 例如:
Arrays.fill(nums, 2, 5, -1)将索引2、3、4位置设为-1 - 越界会抛
IllegalArgumentException,使用前建议校验索引合法性
常见误区与注意事项
使用时需注意类型匹配与引用语义:
- 对对象数组调用
fill,填入的是同一对象引用,不是副本——修改任一元素会影响所有被填充位置(若该对象可变) - 不能直接用
fill初始化二维数组全部元素;需逐行调用或嵌套循环 - 数组必须已创建(非null),否则抛
NullPointerException - 基本类型数组自动初始化为0/false/'\u0000',但显式调用
fill更明确意图,利于可读性与维护
对比手动循环与fill性能
在JDK内部,fill底层通常由JVM优化为本地内存操作(如memset风格),比普通for循环略快,尤其在大数组场景下。但日常开发中差异微小,优先选fill主要因其代码简洁、意图直白。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











