gpt4 book ai didi

java - 我不想更改方法内的数组

转载 作者:行者123 更新时间:2023-11-30 04:01:34 24 4
gpt4 key购买 nike

当我将数组放入我的方法中时 public int[] insertionSort(final int array[])我不改变数组[]

 public int[] insertionSort(final int array[]) {
int[] array_for_sorting = array;
final int[]TempArray = array;
int n = array_for_sorting.length;
// printNumbers(TempArray);

for (int j = 1; j < n; j++) {
int key = array_for_sorting[j];
int i = j-1;
while ( (i > -1) && ( array_for_sorting [i] > key ) ) {
array_for_sorting [i+1] = array_for_sorting [i];
i--;
}
array_for_sorting[i+1] = key;
// printNumbers(array_for_sortying);
}
//array = TempArray;
printNumbers(TempArray);// for printing
return array_for_sorting;
}

另外,为什么我的 TempArray 在 for 循环后发生变化?

最佳答案

所有数组引用(arrayarray_for_sortingTempArray)都引用同一个数组对象。因此,当您修改数组内容时,它将从其所有引用中可见。

final 在这里意味着什么,您不能将另一个数组重新分配给最终数组引用。但是,其内容可以更改

如果需要复制数组,请使用 Arrays.copyOf(array, array.length);

关于java - 我不想更改方法内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com