48 votes

Classe Java Comparator pour trier les tableaux

Disons que nous avons le tableau à 2 dimensions suivant :

 int camels[][] = new int[n][2];

Comment Comparator pour trier les tableaux par leurs premiers éléments dans l'ordre décroissant en utilisant Arrays.sort(camels, comparator) ? La fonction compare pour référence est :

 @Override public int compare(int[] a, int [] b)
{
    return b[0] - a[0];
}

7voto

user2830451 Points 1464

La réponse de @aioobe est excellente. Je veux juste ajouter un autre moyen pour Java 8.

 int[][] twoDim = { { 1, 2 }, { 3, 7 }, { 8, 9 }, { 4, 2 }, { 5, 3 } };

Arrays.sort(twoDim, (int[] o1, int[] o2) -> o2[0] - o1[0]);

System.out.println(Arrays.deepToString(twoDim));

Pour moi, c'est intuitif et facile à retenir avec la syntaxe Java 8.

6voto

user3706706 Points 43

Je viens d'essayer cette solution, nous n'avons même pas besoin d'écrire int.

 int[][] twoDim = { { 1, 2 }, { 3, 7 }, { 8, 9 }, { 4, 2 }, { 5, 3 } };
Arrays.sort(twoDim, (a1,a2) -> a2[0] - a1[0]);

Cette chose fonctionnera également, elle détecte automatiquement le type de chaîne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X