现有两个整型数组 `int[] arr1 = {1, 2, 3};` 和 `int[] arr2 = {1, 2, 3};`。 如果分别对它们进行以下操作,哪个操作后 `Arrays.equals(arr1, arr2)` 的结果仍然为 `true`?

答案解析

A选项中,`Arrays.fill(arr1, 1)`会将`arr1`变为`{1, 1, 1}`,此时`Arrays.equals(arr1, arr2)`会返回`false`。B选项中,`Arrays.sort(arr1)`排序后`arr1`不变,然后 `Arrays.fill(arr2, 0, 2, 1)`会将 `arr2` 变为`{1, 1, 3}`,此时 `Arrays.equals(arr1, arr2)`会返回 `false`。C选项中,`Arrays.copyOfRange(arr1, 0, 2)` 创建的新数组为 `{1, 2}`,并赋值给 `arr1`。`Arrays.copyOf(arr2, 2)`创建新数组 `{1, 2}` 并赋值给 `arr2`。此时数组大小不一致,所以`Arrays.equals(arr1, arr2)`会返回`false`。D选项中,将 `arr1` 和 `arr2` 的引用都指向同一个新的数组 `arr3 = {1,2,3}`,`arr1` 和 `arr2` 引用的是同一个数组对象,数组本身没有改变,此时 `Arrays.equals(arr1, arr2)` 仍然会返回 `true`,因为比较的是数组的引用是否相同,而这里指向了同一个数组对象。
正确答案:D
随机推荐
开始刷题