gpt4 book ai didi

java - Arrays.sort( myarray) 物理上改变了数组?

转载 作者:行者123 更新时间:2023-12-02 03:26:24 27 4
gpt4 key购买 nike

请帮助我理解这里发生了什么:

Main.java:

int[] myarray = new int[125];
// setup the array here, code omitted.

int minimum = ProcessArray.min(myarray );


// the array values will now print as if they have been sorted...
for(int I=0; I<myarray.length;i++) {
System.out.Println(myarray[i]);
}

ProcessArray.java

import java.util.Arrays;

public class ProcessArray {
public static int min(int[] anarray){
Arrays.sort(anarray);
return anarray[0];
}


}

找到数组的最小值后,数组将按排序顺序打印。

为什么数组会按排序顺序重新排列?

最佳答案

当您将数组传递给函数时,它是对 myarray 的引用不是克隆/副本

您的最小函数对数组进行了排序,因此它在调用后进行了排序

您可以手动克隆数组,以保留原始数组

int minimum = ProcessArray.min(myarray.clone());或使用Arrays.copyOf(..)

请记住,克隆/复制是“浅复制”,如果它是某些对象的数组,则对象仍然是相同的......

看看这个问题Is Java "pass-by-reference" or "pass-by-value"?

关于java - Arrays.sort( myarray) 物理上改变了数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38823055/

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