2017-04-12 49 views
-2

假設我有這樣的2D陣列:排序通過2D陣列第[i] [2]元素

array[0][] = {5,B,2} 
array[1][] = {9,R,4} 
array[2][] = {3,B,1} 
array[3][] = {1,R,8} 

如何可以以這樣的方式排序此數組,這是輸出:

array[0][] = {3,B,1} 
array[1][] = {5,B,2} 
array[2][] = {9,R,4} 
array[3][] = {1,R,8} 

基本上根據[i] [2]元素對它們進行排序。

這是我的聲明的數組:

String[][] splitnodes = new String[7][]; 

它甚至有可能?如果是,如何?

謝謝!

+0

你有試過什麼嗎? – ControlAltDel

+0

不是真的,我不知道從哪裏開始:/ @ControlAltDel –

+2

我很想知道你的數組是什麼類型?你可以發佈聲明'array'變量的代碼嗎? – jrook

回答

0

一個辦法是實施「普通搜索」像插入排序,在這裏你只比較第二個元素,然後進行元素

0

您可以使用任何分揀tecnique涉及其餘部分和步驟比較你需要比較每個子數組的第二個元素。使用J0DK中提供的實用方法,您也可以使用Arrays.java中定義的sort方法。

java.util.Arrays.sort(array, new 
    java.util.Comparator<String[]>() { 
     public int compare(String[] a, String[] b) { 
      return Integer.compare(Integer.parseInt(a[2]), Integer.parseInt(b[2])); 
     } 
}); 
+0

@Andy Thomas我編輯了我的答案 –