我有一个名为distance [] []
的2D数组它在第0列中保留我的值:
示例:
{ 5
7
3
9 }
它看起来像是一维数组,但我已将其转换为2D数组,以便能够跟踪我的索引。
我访问第一个值的方法是距离[0] [0]。
我的问题是:如果我要对数组进行排序,如何跟踪原始索引位置。我的印象是我可能需要按升序创建相应的数字列表,这些数字与距离值的位置相对应。
之后我会做什么?
答案 0 :(得分:0)
最简单的解决方案是创建一个Pair
类来保存项目及其相应的索引。然后,将这个Pair
类的列表保存在两个不同的list
s和排序其中一个。在java中,你可以使用引用而不创建一个复制对象,这应该相当容易。现在排序列表将包含值及其相应的索引根据值排序,未排序的列表将具有{ {1}}输入您输入的顺序,即根据索引排序。
答案 1 :(得分:0)
您只需要使用比较器。请考虑以下代码 -
Arrays.sort(arr, new java.util.Comparator<int[]>(){
public int compare(int[] a,int[] b){
return a[0]-b[0];
}
});
arr
是您的ordial 2d数组,其中第一列包含要排序的数字,第二列包含索引