Arrays.sort und Sortieren
Sortieren Sie primitive und Objekt-Arrays
Arrays.sort und Sortieren ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum eine Hilfsklasse
Arrays sind in Java Objekte, verfügen aber nur über sehr wenige integrierte Methoden. Die Klasse java.util.Arrays schließt diese Lücke mit statischen Hilfsmethoden zum Sortieren, Suchen, Vergleichen, Kopieren und Ausgeben von Arrays.
- Importieren Sie sie mit
import java.util.Arrays; - Jede Methode ist
static, daher rufen Sie sie direkt über die Klasse auf:Arrays.sort(...)
Ein primitives Array sortieren
Arrays.sort(int[]) sortiert das Array direkt mit einem schnellen Dual-Pivot-Quicksort. Es gibt keinen Rückgabewert; das ursprüngliche Array wird neu angeordnet.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {5, 2, 8, 1, 9, 3};
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
}
}Andere primitive Typen sortieren
Für jeden primitiven Typ gibt es überladene Varianten: double[], long[], char[] und weitere. Sie sortieren alle aufsteigend.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
double[] prices = {3.5, 1.2, 9.9, 0.5};
Arrays.sort(prices);
System.out.println(Arrays.toString(prices));
}
}Einen Bereich sortieren
Mit Arrays.sort(array, fromIndex, toIndex) können Sie nur einen Teil eines Arrays sortieren. Der Bereich umfasst fromIndex einschließlich und toIndex ausschließlich.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {5, 2, 8, 1, 9, 3};
Arrays.sort(nums, 1, 4);
System.out.println(Arrays.toString(nums));
}
}Objektarrays sortieren
Bei Objektarrays wie String[] verwendet Arrays.sort die natürliche Ordnung der Elemente, also deren Comparable-Implementierung. Zeichenketten werden lexikografisch sortiert.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] names = {"Charlie", "Alice", "Bob"};
Arrays.sort(names);
System.out.println(Arrays.toString(names));
}
}Mit einem Comparator sortieren
Um die natürliche Ordnung zu überschreiben, übergeben Sie einen Comparator. Comparator.reverseOrder() sortiert absteigend. Das funktioniert nur bei Objektarrays, nicht bei primitiven Arrays.
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] names = {"Charlie", "Alice", "Bob"};
Arrays.sort(names, Comparator.reverseOrder());
System.out.println(Arrays.toString(names));
}
}Comparator nach Länge
Ein Comparator kann anhand jeder beliebigen Eigenschaft vergleichen. Comparator.comparingInt(String::length) sortiert Zeichenketten von der kürzesten bis zur längsten.
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] words = {"banana", "fig", "apple"};
Arrays.sort(words, Comparator.comparingInt(String::length));
System.out.println(Arrays.toString(words));
}
}Stabilität
Das Sortieren von Objektarrays ist stabil: Gleiche Elemente behalten ihre ursprüngliche relative Reihenfolge. Für primitive Sortierungen ist die Stabilität nicht garantiert. Da gleiche primitive Werte jedoch nicht unterscheidbar sind, spielt das keine Rolle.
Paralleles Sortieren
Bei sehr großen Arrays teilt Arrays.parallelSort die Arbeit auf mehrere CPU-Kerne auf. Die API ist identisch mit der von sort; das Ergebnis ist dasselbe, bei großen Datenmengen geht es lediglich schneller.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {7, 3, 9, 1, 5, 2, 8, 4};
Arrays.parallelSort(nums);
System.out.println(Arrays.toString(nums));
}
}Ein häufiger Fallstrick
Arrays.sort gibt void zurück. Eine Zeile wie int[] sorted = Arrays.sort(nums); lässt sich nicht kompilieren. Sortieren Sie zuerst und verwenden Sie anschließend dieselbe Variable.
Sortieren und anschließend ausgeben
Ein typischer Ablauf: Sortieren Sie das Array direkt und geben Sie es anschließend mit Arrays.toString aus, um das Ergebnis zu überprüfen.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] scores = {88, 72, 95, 60, 81};
Arrays.sort(scores);
System.out.println("Lowest: " + scores[0]);
System.out.println("Highest: " + scores[scores.length - 1]);
System.out.println(Arrays.toString(scores));
}
}Schnelltest
Testen Sie Ihr Verständnis des Sortierens.
Zusammenfassung
Sie haben gelernt, Arrays mit der Hilfsklasse Arrays zu sortieren.
Arrays.sort(arr)sortiert primitive Werte oder Objekte direkt und aufsteigend.- Eine überladene Variante für Bereiche,
sort(arr, from, to), sortiert einen Teil des Arrays. - Objektarrays akzeptieren einen
Comparatorfür eine benutzerdefinierte Reihenfolge. parallelSortbeschleunigt das Sortieren großer Arrays.
Häufig gestellte Fragen
Ist die Lektion „Arrays.sort und Sortieren“ kostenlos?
Ja — der vollständige Text von „Arrays.sort und Sortieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Arrays.sort und Sortieren“?
Sortieren Sie primitive und Objekt-Arrays Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Arrays.sort und Sortieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Arrays.sort und Sortieren
- Arrays.binarySearch
- Arrays.fill und copyOf
- Arrays.equals und toString