2013-08-20 3 views
0
void sortarray(final int index){ 
     Arrays.sort(data, new Comparator<Object[]>(){ 
      @Override 
      public int compare(Object[] o1, Object[] o2) { 
       String[] a = (String[])o1; 
       String[] b = (String[])o1; 
       return a[index].compareTo(b[index]); 
      } 
     }); 

    } 
2 5 LouieChef B 
2 6 Lawson C 
2 10 BakerSarah D 
2 11 SmothersSally A 
2 12 SillySall C 
2 13 Viper B 

열 인덱스에 2 차원 문자열 배열을 정렬하는 방법.
이 코드가 작동하지 않습니다 ...열 인덱스를 사용하는 2 차원 배열 정렬

+3

2 차원 배열입니까? 그렇다면 선언을 변경하십시오. 그렇지 않은 경우 캐스트를 변경하십시오. – dasblinkenlight

+0

는 개체를 문자열로 변경하는 것을 의미합니까 ?? – user2699538

+0

개체 []를 문자열 [] []로 변경하십시오. 당신은 또한 당신이 어떤 종류의 정렬을 기대하는지 명확히 해줄 수 있습니까? – Guillaume

답변

0

아래의 코드가 작동해야

String[][] theArray = new String[][]{{"Enter values","Enter values"}, {more values, more values}}; 
Comparator<String[]> comparator= new Comparator<String[]>() { 
     Arrays.sort(theArray, new Comparator<String[]>(){ 
       @Override 
       public int compare(String[] o1, String[] o2) { 
        return o1[0].compareTo(02[0]); 
       } 
      }); 
Arrays.sort(theArray, comparator); 

캐스팅은 항상 피할 수 시도해야합니다. 비록 당신의 접근법 (객체와 문자열에 대한 캐스트)을 사용하여 코드에서 다른 오류가있을 수 있습니다. 어쨌든, 컴파일러에게 이것이 당신이 정렬 할 것이라는 것을 안다면 String을 정렬한다는 것을 명시하는 것이 낫습니다.