引言:
在刷算法题时,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:为二维数组赋值数组(错误赋值法)
总结:
数组赋值为引用传值,二维数组中的一维数组都指向同一数组内存。