Heim > Java > javaLernprogramm > Hauptteil

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

Patricia Arquette
Freigeben: 2024-11-13 01:40:02
Original
946 Leute haben es durchsucht

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}
};
Nach dem Login kopieren

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]);
  }
});
Nach dem Login kopieren

Dadurch wird das folgende sortierte Array erzeugt:

[
  {1, 5},
  {12, 100.6},
  {12.1, .85},
  {13, 1.55}
]
Nach dem Login kopieren

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

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

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage