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!