2016-11-20 42 views
0

我有一個二維數組稱爲距離[] []我如何排序的二維數組,並跟蹤到原始指標中的Java

它擁有列0我的價值觀:

例子:

{ 5 
    7 
    3 
    9 } 

它看起來像一維數組,但是爲了能夠跟蹤我的索引,我將它轉換爲二維數組。

我訪問我的第一個值的方式是distance [0] [0]。

我的問題是:如果我要排序我的數組,我該如何跟蹤原始索引位置。我的印象是,我可能需要按照距離值的位置my的升序來創建相應的數字列表。

之後我該怎麼辦?

回答

0

所有你需要的是使用比較器。考慮下面的代碼 -

Arrays.sort(arr, new java.util.Comparator<int[]>(){ 
    public int compare(int[] a,int[] b){ 
     return a[0]-b[0]; 
    } 
}); 

arr是您的orginial 2D陣列,其中第一列包含於已排序和第二列的數字包含索引

0

最簡單的解決辦法是建立一個Pair類,持有該項目及其相應index.Then,保持這樣的列表Pair類詮釋兩種不同的list S和比排序在Java them.Since之一,你可以使用引用而不創建複製對象,這應該相當簡單。現在,排序後的列表將包含根據值排序的值及其對應的索引,未排序列表將按您輸入的順序排序,即排序根據指數。