Java 为什么array.sorts对父数组进行排序?

Java 为什么array.sorts对父数组进行排序?,java,arrays,sorting,Java,Arrays,Sorting,为什么数组“矩阵[0]”也要排序,需要Systemcopy int[] check = matrix[0]; Arrays.sort(check); 现在我使用Systemcopy来解决这个问题,但是为什么呢?这一行:int[]check=matrix[0]将矩阵[0]的引用指定给check。这意味着无论您对检查执行什么操作,都将反映在矩阵中。尽管引用不相同,但内存位置是相同的,除非您创建一个副本(如您所述)。此行:int[]check=matrix[0]将矩阵[0]的引用分配给check。

为什么数组
“矩阵[0]”
也要排序,需要Systemcopy

int[] check = matrix[0];

Arrays.sort(check);

现在我使用Systemcopy来解决这个问题,但是为什么呢?

这一行:
int[]check=matrix[0]
矩阵[0]
引用指定给
check
。这意味着无论您对
检查
执行什么操作,都将反映在
矩阵中。尽管引用不相同,但内存位置是相同的,除非您创建一个副本(如您所述)。

此行:
int[]check=matrix[0]
矩阵[0]
引用分配给
check
。这意味着无论您对
检查
执行什么操作,都将反映在
矩阵中。尽管引用不相同,但内存位置是相同的,除非您创建一个副本(如您所述)。

当您执行
int[]check=matrix[0]
时,
check
现在引用的是
matrix[0]
。要使它们成为两个不同的数组,您需要制作一个深度副本。

当您执行
int[]check=matrix[0]
时,
check
现在引用的是
matrix[0]
。要使它们成为两个不同的数组,您需要制作一个深度副本。

因为
matrix
是对
int[]
数组的引用数组,基本上现在我使用systemcopy来解决这个问题,但为什么?因为
int[]
不是基本类型。您的问题没有包含足够的信息。我们不应该假设
矩阵
是2D数组。另外,
arrays.sorts
并没有真正指向每个人都知道的东西。你能编辑这个问题吗?
int[]check=matrix[0]
不复制数组
matrix[0]
,它只是复制数组的引用(即它是一个浅拷贝)。另见:。仅供参考,您还可以使用
matrix[0].clone()
创建副本。因为
matrix
是对
int[]
数组的引用数组,所以我现在基本上使用systemcopy来修复此问题,但为什么?因为
int[]
不是基本类型。您的问题没有包含足够的信息。我们不应该假设
矩阵
是2D数组。另外,
arrays.sorts
并没有真正指向每个人都知道的东西。你能编辑这个问题吗?
int[]check=matrix[0]
不复制数组
matrix[0]
,它只是复制数组的引用(即它是一个浅拷贝)。另见:。仅供参考,您还可以使用
矩阵[0].clone()
创建副本。