Arrays.fill 和实际填充有区别吗

Ris*_*shi 1 java arrays

这个问题可能看起来微不足道,但几天来我无法找到解决此问题的方法。

片段 1:

for(int i = 0; i < arr.length; i++){
    arr[i] = new Bucket();
}
Run Code Online (Sandbox Code Playgroud)

片段 2:

Arrays.fill(arr, new Bucket());
Run Code Online (Sandbox Code Playgroud)

包含代码段 1 的代码按预期执行,但包含代码段 2 的代码未通过所有测试用例。

我期待这两个语句在内部做同样的工作。但测试用例表明事实并非如此。任何帮助澄清这一点都会非常有帮助。

Sam*_*nen 5

想想他们做了什么:在循环中,您在每次迭代时创建一个新对象。在第二个中,您创建一个对象并用它填充数组。他们是完全不同的。

文档

将指定的 Object 引用分配给指定的 Objects 数组的每个元素。