Maison >Java >javaDidacticiel >Comment trier un tableau 2D en Java à l'aide de Arrays.sort ?

Comment trier un tableau 2D en Java à l'aide de Arrays.sort ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-13 01:40:02988parcourir

How to Sort a 2D Array in Java Using Arrays.sort?

Tri d'un tableau 2D à l'aide d'Arrays.sort

Le tri d'un tableau multidimensionnel peut être une tâche complexe. Cependant, en utilisant la méthode Arrays.sort de Java, il est possible d'y parvenir efficacement.

Plus précisément, la solution implique d'utiliser la méthode surchargée Arrays#Sort(T[] a, Comparator c), qui prend un Comparator comme son deuxième argument. Un comparateur est un objet qui définit la manière dont les objets sont comparés. Dans ce cas, nous souhaitons comparer les valeurs du premier élément de chaque sous-tableau.

Pour implémenter cela, créez un comparateur qui implémente l'interface java.util.Comparator et remplace sa méthode compare(). Cette méthode doit comparer les premiers éléments des deux tableaux et renvoyer -1, 0 ou 1 selon l'ordre dans lequel ils doivent apparaître.

Par exemple, considérons le tableau 2D suivant :

double[][] myArr = {
  {1, 5},
  {13, 1.55},
  {12, 100.6},
  {12.1, .85}
};

Pour trier ce tableau par ordre croissant en fonction des valeurs du premier élément de chaque sous-tableau, utilisez le code suivant :

java.util.Arrays.sort(myArr, new java.util.Comparator<double[]>() {
  public int compare(double[] a, double[] b) {
    return Double.compare(a[0], b[0]);
  }
});

Cela produira le tableau trié suivant :

[
  {1, 5},
  {12, 100.6},
  {12.1, .85},
  {13, 1.55}
]

Dans Java 8 et versions ultérieures, vous pouvez utiliser des lambdas pour simplifier le comparateur :

Arrays.sort(array, Comparator.comparingDouble(o -> o[0]));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn