2012-04-09 3 views
-1

J'utilise Java et j'ai un int [] [] tableau comme si:Java: Tri un tableau 2D basé sur les valeurs de la deuxième colonne

[ 65][ 4] 
[108][ 47] 
[ 32][279] 
[103][ 26] 
[111][138] 
[100][ 63] 
[112][ 33] ...etc. 

Et je dois trier du moins au plus grand, basé sur les valeurs de la deuxième colonne. J'ai essayé ce code, se trouve également sur ce site:

print(myArray); 
    System.out.println("=========="); 

    Arrays.sort(myArray, new Comparator<int[]>() { 
     @Override 
     public int compare(int[] int1, int[] int2) 
     { 
      Integer number1 = int1[1]; 
      Integer number2 = int2[1]; 
      return number1.compareTo(number2); 
     } 
    }); 

    print(myArray); 

Si ma méthode d'impression est la suivante:

public static void print(int[][] array) { 
    int k = 0; 
    while (array[k][0] != 0) { 
     System.out.println("[" + array[k][0] + "][" + array[k][1] + "]"); 
     k++; 
    } 
} 

Il ne semble pas imprimer la deuxième fois, peu importe quoi. Je ne suis pas sûr de ce que je fais mal ici. Heureusement, c'est juste une solution facile :)

+1

Que sont 'letter1' et' letter2' dans la méthode 'compare (...)'? – dasblinkenlight

+0

duplication possible de [Comment est-ce que je trier un nombre entier simple tableau bidimensionnel?] (Http://stackoverflow.com/questions/7908307/how-do-i-sort-a-simple-integer-2-dimensional-array) –

+0

Probablement une faute de frappe. Son application originale est susceptible de trier des tableaux de caractères. – Alain

Répondre

2

Il semble que votre méthode d'impression est mauvaise (ou votre code fourni ne suffit pas à reproduire votre erreur). Votre code est imprimé la première fois, mais il renvoie une exception ArrayIndexOutOfBoundsException (que vous devriez obtenir aussi, s'il s'agit du problème réel). Essayez cette méthode d'impression à la place, cela fonctionne pour moi.

public static void print(int[][] array) { 
    for (int i = 0; i < array.length; i++) { 
     System.out.println("[" + array[i][0] + "][" + array[i][1] + "]"); 
    } 
} 
+0

Ah, je me demandais si c'était ma méthode d'impression. Vous voyez, le problème est qu'au moment de l'implémentation du tableau, je ne connais pas la quantité de caractères dans le texte. Je me retrouve donc avec un tas de [0] [0] là aussi. Je suppose que maintenant je connais les travaux de tri. – Sam032789

+0

Oui, le tri était très bien :-) – Paaske

+0

Merci, merci, merci !! – Sam032789

Questions connexes