导读:本期聚焦于小伙伴创作的《Java数组填充实战:如何利用Arrays_fill一键初始化数组默认值》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Java数组填充实战:如何利用Arrays_fill一键初始化数组默认值》有用,将其分享出去将是对创作者最好的鼓励。

在Java编程中,数组初始化是基础且高频的操作,当需要为数组设置统一的默认值时,手动逐个赋值的方式不仅代码冗余,还容易出现赋值遗漏的问题。Java标准库中的Arrays类提供了fill方法,能够一键完成数组元素的批量赋值,大幅提升初始化效率。

Java数组填充实战:如何利用Arrays_fill一键初始化数组默认值

Arrays.fill方法的基本重载形式

Arrays.filljava.util.Arrays类的静态方法,针对不同类型的数组提供了多种重载实现,核心分为两类:全数组填充和区间填充。

全数组填充重载

这类方法会将指定值赋给数组的所有元素,常见形式如下:

  • fill(boolean[] a, boolean val):填充布尔类型数组
  • fill(byte[] a, byte val):填充字节类型数组
  • fill(char[] a, char val):填充字符类型数组
  • fill(double[] a, double val):填充双精度浮点类型数组
  • fill(float[] a, float val):填充单精度浮点类型数组
  • fill(int[] a, int val):填充整型数组
  • fill(long[] a, long val):填充长整型数组
  • fill(Object[] a, Object val):填充对象类型数组

区间填充重载

这类方法可以指定填充的起始索引和结束索引,仅对数组的指定区间进行赋值,索引范围是左闭右开,常见形式如下:

  • fill(boolean[] a, int fromIndex, int toIndex, boolean val)
  • fill(byte[] a, int fromIndex, int toIndex, byte val)
  • fill(char[] a, int fromIndex, int toIndex, char val)
  • fill(double[] a, int fromIndex, int toIndex, double val)
  • fill(float[] a, int fromIndex, int toIndex, float val)
  • fill(int[] a, int fromIndex, int toIndex, int val)
  • fill(long[] a, int fromIndex, int toIndex, long val)
  • fill(Object[] a, int fromIndex, int toIndex, Object val)

基础使用代码示例

一维数组全量填充

当需要为整个一维数组设置默认值时,直接调用全数组填充的fill方法即可:

import java.util.Arrays;

public class ArrayFillDemo {
    public static void main(String[] args) {
        // 初始化一个长度为5的整型数组
        int[] intArray = new int[5];
        // 使用Arrays.fill为所有元素赋值默认值10
        Arrays.fill(intArray, 10);
        // 打印数组内容
        System.out.println(Arrays.toString(intArray));
        
        // 初始化一个长度为3的字符串数组
        String[] strArray = new String[3];
        // 为所有元素赋值默认值"default"
        Arrays.fill(strArray, "default");
        System.out.println(Arrays.toString(strArray));
    }
}

上述代码执行后,intArray的所有元素都是10,strArray的所有元素都是"default",输出结果分别为[10, 10, 10, 10, 10][default, default, default]

一维数组区间填充

如果只需要修改数组的部分元素,可以使用区间填充的重载方法:

import java.util.Arrays;

public class ArrayRangeFillDemo {
    public static void main(String[] args) {
        int[] numArray = new int[8];
        // 先为所有元素赋值初始值0
        Arrays.fill(numArray, 0);
        // 为索引1到4(不包含4)的元素赋值5
        Arrays.fill(numArray, 1, 4, 5);
        // 为索引5到7(不包含7)的元素赋值8
        Arrays.fill(numArray, 5, 7, 8);
        System.out.println(Arrays.toString(numArray));
    }
}

执行后数组元素为[0, 5, 5, 5, 0, 8, 8, 0],可以看到只有指定区间的元素被修改,区间外的元素保持原值。

二维数组的填充处理

需要注意的是,Arrays.fill方法无法直接完成二维数组的批量填充,因为二维数组本质是数组的数组,直接填充会导致所有行指向同一个一维数组对象。正确的二维数组填充方式如下:

import java.util.Arrays;

public class TwoDArrayFillDemo {
    public static void main(String[] args) {
        int row = 3;
        int col = 4;
        int[][] twoDArray = new int[row][col];
        // 遍历二维数组的每一行,分别填充
        for (int i = 0; i < row; i++) {
            Arrays.fill(twoDArray[i], 9);
        }
        // 打印二维数组内容
        for (int[] rowArr : twoDArray) {
            System.out.println(Arrays.toString(rowArr));
        }
    }
}

上述代码会生成一个3行4列的二维数组,所有元素都是9,输出结果为三行[9, 9, 9, 9]

使用注意事项

  • 区间填充的fromIndex必须小于toIndex,否则会抛出IllegalArgumentException
  • 索引范围不能超过数组长度,否则会抛出ArrayIndexOutOfBoundsException
  • 对于对象类型数组,fill方法填充的是同一个对象引用,修改其中一个元素的属性会影响所有元素
  • Arrays.fill是浅填充,不会创建新的对象实例,对象数组填充时需要特别注意引用问题

常见误区说明

很多开发者会误以为Arrays.fill可以处理多维数组,实际上该方法仅支持一维数组的直接填充。对于多维数组,必须逐层遍历后调用fill方法,否则会出现所有维度引用同一个对象的问题。

另外,fill方法会直接修改原数组,不会返回新的数组对象,使用时不需要接收返回值,直接调用即可完成数组修改。

JavaArrays_fill数组初始化数组填充修改时间:2026-06-25 10:33:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。