arrays.fill 是 java 中直接高效的数组批量赋值工具,支持基本类型和对象数组的初始化与覆盖填充,需注意参数顺序、索引合法性及多维数组需循环调用等限制。

Arrays.fill 是 Java 中最直接、高效的数组批量赋值工具,适用于基本类型和对象数组的初始化与覆盖填充,无需循环,一行代码搞定。
基础用法:一次性填满整个数组
对一维数组全部元素赋相同值,是最常见场景。注意参数顺序:数组 + 填充值。
- 基本类型数组(如 int[]):填入对应类型的值,自动装箱/拆箱不参与
- 引用类型数组(如 String[]):填入 null 或具体对象引用,不调用构造器
- 示例:int[] arr = new int[5]; Arrays.fill(arr, 7); // → [7, 7, 7, 7, 7]
区间填充:只改指定范围,避免额外复制
通过起始索引(含)和结束索引(不含)精准控制填充范围,适合局部重置或分段处理。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 索引必须合法:from ≥ 0,to ≤ array.length,且 from ≤ to,否则抛 IllegalArgumentException
- 示例:char[] cs = {'a', 'b', 'c', 'd', 'e'}; Arrays.fill(cs, 1, 4, 'X'); // → ['a', 'X', 'X', 'X', 'e']
多维数组?需配合循环逐层调用
Arrays.fill 不支持自动遍历嵌套结构。二维数组本质是“数组的数组”,需外层循环 + 内层 fill。
- 错误写法:Arrays.fill(matrix, value) —— 只填了第一层引用,不是每个子数组元素
- 正确做法:for (int[] row : matrix) Arrays.fill(row, 0);
- 若需初始化为新对象(如 new Integer(1)),仍需循环 new + fill,fill 本身不创建新实例
替代方案对比:什么时候不该用 fill?
fill 适合“同值覆盖”,但初始化有更优选择:
- 新建时即初始化:用 new int[]{1,2,3} 或 IntStream.generate(...).toArray()
- 需不同值序列:用 IntStream.range(0, n).mapToObj(i -> i * 2).toArray()
- 对象数组需各自独立实例:fill 只复制引用,必须用循环 new 实例再赋值
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










