我在Java中发起了一个与另一个数组相同的数组。我这样做是因为我只想对数组的副本进行排序而不是原始副本。这很好用新数组填充原始值。当我对数组进行排序时,就会出现问题。原件也被排序。所以我原来的也是排序的。如何更正此问题,以便只对数组的副本进行排序。
double[] distancesSort = distances;
Arrays.sort(distancesSort);
答案 0 :(得分:13)
=
不用于将一个数组的元素复制到另一个数组中。
使用
double[] distancesSort = Arrays.copyOf(distances,distances.length);
Arrays.copyOf(double[] arr, int length)
使用零复制指定的数组,截断或填充(如果 必要的)所以副本有指定的长度。对于所有指数 在原始数组和副本中都有效,两个数组都会有效 包含相同的值。对于副本中有效的任何索引 但不是原件,副本将包含0L。这些指数会 当且仅当指定的长度大于。的长度时才存在 原始阵列。
<强>参数:强>
arr - 要复制的数组
length - 要复制的长度 返回
<强>返回:强>
原始数组的副本,用零填充或填充以获取 指定的长度
如果您使用=
,则distancesSort
会引用distances
。 distancesSort
中的任何更改都会反映distances
中的更改。