2012-12-31 28 views
0

我想排序我的字符串[] []相對於第二列。我試過這個排序字符串[] [] []意想不到的輸出

public static String[][] sorting_minn(String[][] list){ 
    double[] temp = new double[list.length]; 
    String[][] tempf = list; 

    if(list[1][1]!=null){ 
    for(int i = 0; i<list.length; i++){ 
     if(list[i][2]==null){ 
      break; 

     } else { 
      temp[i]=Double.parseDouble(list[i][2]); 


     } 

    } 

Arrays.sort(temp); 

for(int f = 0; f<list.length-1;f++){ 
    for(int m = 0; m<list.length;m++){ 
     if(list[m][2]!=null && Double.parseDouble(list[m][2])==temp[f]){ 
      for(int n = 0; n<4; n++){ 
       tempf[list.length-f-1][n]=list[m][n]; 

      } 
     m = list.length; 
      } 
     } 

    } 
} 
return tempf; 

} 

作爲輸出我得到這個:output。我需要關於如何改進此代碼的建議。

+0

您可以添加期望的輸出? – 11684

+2

讓你知道; * second *列位於索引'[1]'** not ** index'[2]'。 – NominSim

+0

@NominSim我知道這一點。 – data

回答

2

嘗試類似:

 Arrays.sort(list, new Comparator<String[]>() { 
      @Override 
      public int compare(String[] o1, String[] o2) { 
       String left = o1[1]!=null ? o1[1] : ""; 
       String right = o2[1]!=null ? o2[1] : ""; 
       return left.compareTo(right); 
      } 
     }); 

這種處理空值作爲空字符串,並利用了這一字符串是可比的,儘管字典。如果你想以相反的順序只是這樣做,而不是:

right.compareTo(left) 

,如果你想整命令你可以解析的整數出雙方(Integer.MIN爲空),比較2個整數