我有一个Java的双精度数组:arr1
,我想对它进行排序。最有可能的第一种选择是效用方法Arrays.sort(double[])
。对数组进行排序并反映另一个数组中的更改
的想法是,我想同样的变化(例如在index i
值在arr1
index j
互换具有值),以反映在另一个整数数组:arr2
(在这个意义上,在相同的索引值被改变也在arr2
)。
是否有一个简单的方法(一招)在Java中完成这个?或者唯一的方法是自己实现排序算法?
UPDATE:我看到,人们建议用含有2个值(一个来自arr1
和一个从arr2
)对象中的一个阵列替换两个阵列。这不会带来一些效率惩罚。换句话说,对一个对象数组进行排序不是比原始类型数组(在这种情况下是双倍)效率低吗?
数据是完全静态的。它很大(它适合内存),但是是静态的。
有一个索引数组。不要对值数组排序,对索引数组进行排序。然后使用索引数组来指向两个值数组。请参阅解决方案:http://stackoverflow.com/questions/4859261/get-the-indices-of-an-array-after-sorting – Raihan
http://stackoverflow.com/questions/112234/sorting-matched-array -in-java – talnicolas
这就是所谓的“外部排序”。 –