Arrays.fill()的错误用法-源码解析

本文通过实例分析,揭示Arrays.fill在二维数组赋值中的正确用法,讨论了空间优化策略,并深入剖析了源码,帮助Coders理解引用传值的本质。实验对比展示了循环赋值与错误赋值的区别,强调数组内存共享的重要性。
摘要由CSDN通过智能技术生成

引言:

       在刷算法题时,Coders往往只考虑时间复杂度问题,而空间时间复杂度常以空间换时间的方式反向增加。常遇空间问题有迭代开辟了数组空间,为了更优化空间复杂度,常以全局变量数组形式声明,数组赋值解决空间优化问题。

相关工作:

      数组问题可以概况为 一维 、二维、三维和高维数组赋值。查看部分博客对二维数组赋值中Arrayss.fill有错误使用问题,为方面后期学习复习和理解,我们将深入Arrays.fill()源码理解赋值的正确方式。

     错误用例:

     

    Arrays.fill()源码:

public static void fill(Object[] a, Object val) {
    for (int i = 0, len = a.length; i < len; i++)
        a[i] = val;
}

实验:

      实验分别以两种方式验证Arrays.fill赋值二维数组,清晰可观理解Arrays.fill()赋值的过程。

实验1:循环二维数组遍历为每个数组赋值

实验2:为二维数组赋值数组(错误赋值法)

总结:

   数组赋值为引用传值,二维数组中的一维数组都指向同一数组内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值