Heim  >  Artikel  >  Java  >  Wie sortiere ich ein 2D-Array in Java mit Arrays.sort?

Wie sortiere ich ein 2D-Array in Java mit Arrays.sort?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 01:40:02903Durchsuche

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

Sortieren eines 2D-Arrays mit Arrays.sort

Das Sortieren eines mehrdimensionalen Arrays kann eine komplexe Aufgabe sein. Mit der Arrays.sort-Methode von Java ist es jedoch möglich, dies effizient zu erreichen.

Konkret beinhaltet die Lösung die Verwendung der überladenen Arrays#Sort(T[] a, Comparator c)-Methode, die einen Comparator als verwendet sein zweites Argument. Ein Komparator ist ein Objekt, das definiert, wie Objekte verglichen werden. In diesem Fall möchten wir die Werte des ersten Elements in jedem Subarray vergleichen.

Um dies zu implementieren, erstellen Sie einen Komparator, der die Schnittstelle java.util.Comparator implementiert und deren Methode Compare() überschreibt. Diese Methode sollte die ersten Elemente der beiden Arrays vergleichen und je nach Reihenfolge, in der sie erscheinen sollen, -1, 0 oder 1 zurückgeben.

Betrachten Sie beispielsweise das folgende 2D-Array:

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

Um dieses Array in aufsteigender Reihenfolge basierend auf den Werten des ersten Elements in jedem Unterarray zu sortieren, verwenden Sie den folgenden Code:

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

Dadurch wird das folgende sortierte Array erzeugt:

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

In Java 8 und höher können Sie Lambdas verwenden, um den Komparator zu vereinfachen:

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

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein 2D-Array in Java mit Arrays.sort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn