gpt4 book ai didi

java - 在 java 的多个方法中使用的数组副本

转载 作者:行者123 更新时间:2023-11-30 03:45:04 25 4
gpt4 key购买 nike

我正在学习java,我的程序使用排序算法。用户可以选择数组的大小。由于这个问题,我学会了复制数组:Make copy of array Java

我像这样复制数组:

    public static void main(String[] args) {
int num = Integer.parseInt(JOptionPane.showInputDialog("Size of the array: ?"));
int [] list = new int[num];
for(int i=0;i<num;i++){
int num2 = Integer.parseInt(JOptionPane.showInputDialog("Element: "+(i+1)));
list[i]=num2;
}
int [] listCopy = Arrays.copyOf(list, list.length);

对于我的冒泡排序,我使用了保存在列表中的数组,对于我的选择排序,我使用了保存在我的 listCopy 中的数组,但是当我尝试将插入排序与 listCopy 一起使用时,数组已经排序了。

如何复制数组使其永远不会改变?

最佳答案

数组的副本只是另一个数组,其行为方式与任何其他数组相同:当您将副本传递给排序方法时,该副本将被排序,并在之后保持排序状态。

如果您需要将未排序的数组传递给多个方法,请随时创建新副本,如下所示:

int [] orig = new int[num];
for(int i=0;i<num;i++){
int num2 = Integer.parseInt(JOptionPane.showInputDialog("Element: "+(i+1)));
orig[i]=num2;
}
int [] copy = Arrays.copyOf(orig, orig.length);
bubbleSort(copy);
printArray(copy);
copy = Arrays.copyOf(orig, orig.length);
selectionSort(copy);
printArray(copy);
copy = Arrays.copyOf(orig, orig.length);
insertionSort(copy);
printArray(copy);

关于java - 在 java 的多个方法中使用的数组副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962367/

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