public void merge(int[] nums1, int m, int[] nums2, int n) {
if (n == 0) {
nums1 = Arrays.copyOf(nums1, m);
System.out.println(Arrays.toString(nums1));
return;
}
if (m == 0) {
for (int i = 0; i < n; i++)
nums1[i] = nums2[i];
nums1 = Arrays.copyOf(nums2, n);
return;
}
}
使用以下方法测试方法时会发生问题:
public static void main(String[] args) {
int[] nums1 = { 1, 2, 3, 0, 0, 0 };
int[] nums2 = {};
new Merge().merge(nums1, 3, nums2, 0);
System.out.println(Arrays.toString(nums1));
}
但是main方法中的输出是[1, 2, 3, 0, 0, 0]
,而merge方法中的输出是[1, 2, 3]
,但是我不知道为什么!为什么nums1
不变?