Arrays.fill用于填充数组,支持全量或区间赋值。示例:Arrays.fill(arr, 7)将数组所有元素设为7;Arrays.fill(arr, 1, 4, 9)将索引1到3的元素设为9。支持基本类型和对象类型,如String[] names = new String[3]; Arrays.fill(names, "Unknown")。注意:对象数组填充的是引用,修改一个实例会影响所有元素;区间参数需合法,否则抛异常。相比循环,Arrays.fill更简洁高效,适用于初始化或重置数组,尤其在算法题中常用。

在Java中,Arrays.fill 是一个非常实用的工具方法,用于快速初始化或填充数组中的所有元素为指定值。它属于 java.util.Arrays 类,使用前需要导入该类。
Arrays.fill 的基本用法
该方法可以用于各种类型的数组(如 int、double、boolean、Object 等),将整个数组或部分元素设置为同一个值。
常用语法如下:
- Arrays.fill(array, value):将整个数组填充为指定值。
- Arrays.fill(array, fromIndex, toIndex, value):只填充数组的某一段(左闭右开区间)。
示例代码:
立即学习“Java免费学习笔记(深入)”;
import java.util.Arrays;
public class ArrayFillExample {
public static void main(String[] args) {
int[] arr = new int[5];
Arrays.fill(arr, 7); // 全部填为 7
System.out.println(Arrays.toString(arr)); // 输出: [7, 7, 7, 7, 7]
Arrays.fill(arr, 1, 4, 9); // 索引1到3填为9
System.out.println(Arrays.toString(arr)); // 输出: [7, 9, 9, 9, 7]
}
}
支持的数据类型
Arrays.fill 支持所有基本数据类型和引用类型:
- 数值类型:byte、short、int、long、float、double
- 布尔类型:boolean
- 字符类型:char
- 对象数组:String、自定义类等
例如,初始化一个字符串数组:
String[] names = new String[3]; Arrays.fill(names, "Unknown"); System.out.println(Arrays.toString(names)); // [Unknown, Unknown, Unknown]
与数组初始化的区别
直接声明时赋值适用于已知具体值的情况:
int[] arr1 = {1, 2, 3}; // 静态初始化
而 Arrays.fill 更适合在运行时动态设置默认值或重置数组内容,尤其是大数组或需要统一赋值的场景。
比如创建一个长度为100的布尔数组,表示是否访问过:
boolean[] visited = new boolean[100]; Arrays.fill(visited, false); // 显式设为false(其实默认就是false)
注意事项
使用时需注意以下几点:
- 填充的是“值”,对于基本类型是复制值,对于对象数组,是复制引用——即所有元素指向同一个对象实例。
- 如果对对象数组使用 Arrays.fill(arr, obj),修改其中一个元素的内容可能影响其他元素(如果它们共享同一对象)。
- fromIndex 和 toIndex 必须合法,否则会抛出 ArrayIndexOutOfBoundsException 或 IllegalArgumentException。
基本上就这些。Arrays.fill 提供了一种简洁高效的方式完成数组初始化或批量赋值,尤其适合算法题或需要清空/重置数组的场景,比手动写循环更清晰安全。










