Java Arrays.sort(test)对两个数组进行排序

时间:2014-02-10 11:06:52

标签: java arrays sorting

我在Java中发起了一个与另一个数组相同的数组。我这样做是因为我只想对数组的副本进行排序而不是原始副本。这很好用新数组填充原始值。当我对数组进行排序时,就会出现问题。原件也被排序。所以我原来的也是排序的。如何更正此问题,以便只对数组的副本进行排序。

double[] distancesSort = distances;
Arrays.sort(distancesSort);

1 个答案:

答案 0 :(得分:13)

=不用于将一个数组的元素复制到另一个数组中。

使用

double[] distancesSort = Arrays.copyOf(distances,distances.length);

Arrays.copyOf(double[] arr, int length)

  

使用零复制指定的数组,截断或填充(如果   必要的)所以副本有指定的长度。对于所有指数   在原始数组和副本中都有效,两个数组都会有效   包含相同的值。对于副本中有效的任何索引   但不是原件,副本将包含0L。这些指数会   当且仅当指定的长度大于。的长度时才存在   原始阵列。

<强>参数:

  

arr - 要复制的数组
  length - 要复制的长度   返回

<强>返回:

  

原始数组的副本,用零填充或填充以获取   指定的长度

如果您使用=,则distancesSort会引用distancesdistancesSort中的任何更改都会反映distances中的更改。