发布于2026-07-09 阅读(0)
扫一扫,手机访问
Arrays.fill() 用于为已创建数组批量赋值,需先 new 创建再调用;支持全数组或指定区间填充,适用于设置业务占位符而非依赖默认初始化。

在 Ja va 里,Arrays.fill() 绝对算得上是给数组快速“涂色”的神器。你只要先 new 出一个数组,然后调一下 fill(),就能把统一的默认值填满每个格子。不过有个小细节得先搞清楚:它不能让你在 new 的同时一步到位地初始化——必须先创建数组对象,再调用 fill()。但别嫌麻烦,这两步加起来其实就是一行代码的事,开发中经常这么用。
标准的操作流程是这样的:先用 new 指定数组长度,然后用 Arrays.fill() 填入统一的业务占位符。看几个例子就明白了:
int[] arr = new int[5]; Arrays.fill(arr, -1); → 结果 [-1, -1, -1, -1, -1]String[] strs = new String[3]; Arrays.fill(strs, "N/A"); → ["N/A", "N/A", "N/A"]boolean[] flags = new boolean[4]; Arrays.fill(flags, true); → [true, true, true, true]是不是非常直观?无论是整数、字符串还是布尔值,都能一键填满。
你可能会想:如果不调 fill(),数组本身不是有默认初始化吗?没错,int 默认 0,String 默认 null,boolean 默认 false。但实际项目中,我们需要的往往是具有业务语义的占位符,比如用 -1 表示“还未设置索引”,用 "--" 表示“文本占位”,用 Double.NaN 表示“浮点数缺失”。这些默认值可不会自己变成 -1 或 NaN,必须显式地 fill() 一下。一句话:默认初始化是 Ja va 给出的“空白答卷”,而 fill() 是你在答卷上写上“占位符”的动作。
有时候我们并不想填满整个数组,只想修改某一段连续区域。别担心,Arrays.fill() 提供了带起止索引的重载版本:
int[] a = new int[10]; Arrays.fill(a, 2, 7, 999); → 把索引 2 到 6(含)的元素设为 999,其余位置保持默认的 0for (int i = 2; i < 7; i++) a[i] = 999;,但 fill() 写法更安全、语义更清晰,尤其在维护代码时一眼就能看懂意图。fill() 对原始类型和引用类型都适用,但效果有本质区别。原始类型(比如 int、char)每个元素独立存储该值,改一个不影响其他。对于引用类型(比如 String、自定义对象),fill() 会让所有元素引用同一个对象实例。这意味着,如果你填的是一个可变对象(比如 new ArrayList()),后续修改其中一个元素的内容,其他元素也会跟着变——因为大家共用同一个对象。为了避免这种“牵一发而动全身”的意外,建议填入不可变对象(比如 "N/A" 这样的字符串常量),或者干脆用循环逐个创建新实例。总之,用引用类型填数组时多留个心眼。
上一篇:如何在 Java 中通过 throws 关键字将方法内部产生的异常向上层调用者传递
下一篇:怎么利用 IncompleteAnnotationException 处理由于类文件损坏导致的注解属性缺失异常变量
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8