Sortiertechniken in Java

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Sortieren ist eine entscheidende Operation in der Informatik, und Java bietet verschiedene eingebautes Methoden, um verschiedene Datenstrukturen zu sortieren. Java hat verschiedene Klassen verfügbar, um verschiedene Datenstrukturen zu sortieren. In diesem Lab werden wir das Sortieren von Arrays, Sammlungen und benutzerdefinierten Klasseninstanzen untersuchen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/DataStructuresGroup -.-> java/sorting("Sorting") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("ArrayList") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/hashmap("HashMap") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/hashset("HashSet") subgraph Lab Skills java/arrays -.-> lab-117987{{"Sortiertechniken in Java"}} java/arrays_methods -.-> lab-117987{{"Sortiertechniken in Java"}} java/sorting -.-> lab-117987{{"Sortiertechniken in Java"}} java/collections_methods -.-> lab-117987{{"Sortiertechniken in Java"}} java/arraylist -.-> lab-117987{{"Sortiertechniken in Java"}} java/hashmap -.-> lab-117987{{"Sortiertechniken in Java"}} java/hashset -.-> lab-117987{{"Sortiertechniken in Java"}} end

Arrays sortieren

Arrays sind eine einfache Datenstruktur, die verwendet wird, um ähnliche Datentypen in einer geordneten Weise zu speichern. Wir können Arrays mithilfe der eingebauten sort()-Methode der Arrays-Klasse sortieren.

Der folgende Code demonstriert das Sortieren eines Arrays mit der sort()-Methode:

public static void main(String[] args) {
    int[] arr = {7, 9, 1, 0, 2, 5, 6, 11};
    System.out.println("Array vor dem Sortieren: " + Arrays.toString(arr));
    Arrays.sort(arr);
    System.out.println("Array nach dem Sortieren: " + Arrays.toString(arr));
}

Um diesen Code auszuführen, navigieren Sie im Terminal zum Verzeichnis ~/project und führen Sie die folgenden Befehle aus:

$ javac Sorting.java
$ java Sorting

Dieser Code wird das Array in aufsteigender Reihenfolge sortieren. Wenn Sie ein Array in absteigender Reihenfolge sortieren möchten, müssen Sie es mit der Comparator-Schnittstelle sortieren.

Sammlungen sortieren

Java bietet die Collections-Klasse, die eine sort()-Methode hat, um Sammlungen wie Listen, Mengen und Karten zu sortieren. Das Arbeitsmodell dieser Funktion ist ähnlich der sort()-Methode der Arrays-Klasse.

Der folgende Code demonstriert das Sortieren einer Liste von ganzen Zahlen mit der sort()-Methode:

public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    list.add(6);
    list.add(3);
    list.add(8);
    list.add(1);
    list.add(9);

    System.out.println("Liste vor dem Sortieren: " + list);

    Collections.sort(list);
    System.out.println("Liste nach dem Sortieren: " + list);
}

Um diesen Code auszuführen, navigieren Sie im Terminal zum Verzeichnis ~/project und führen Sie die folgenden Befehle aus:

$ javac Sorting.java
$ java Sorting

Mengen sortieren

Mengen werden verwendet, um ungeordnete Daten ohne Duplikate zu speichern. Wir können Mengen nicht direkt mit der sort()-Methode der Collections-Klasse sortieren. Wir können jedoch die geordneten Daten anzeigen, indem wir alle Elemente der Menge in eine Liste übertragen und dann die Liste sortieren.

Der folgende Code demonstriert das Sortieren einer Menge von ganzen Zahlen mit der sort()-Methode:

public static void main(String[] args) {
    Set<Integer> set = new HashSet<Integer>();
    set.add(6);
    set.add(3);
    set.add(-2);
    set.add(1);
    set.add(9);

    List<Integer> list = new ArrayList<Integer>(set);
    Collections.sort(list);
    System.out.println("Menge nach dem Sortieren: " + list);
}

Um diesen Code auszuführen, navigieren Sie im Terminal zum Verzeichnis ~/project und führen Sie die folgenden Befehle aus:

$ javac Sorting.java
$ java Sorting

Die Ausgabe dieses Codes wird eine sortierte Liste von ganzen Zahlen sein.

Maps sortieren

Maps werden verwendet, um Schlüssel-Wert-Paare zu speichern. Wir können Maps nach ihren Schlüsseln oder Werten sortieren. TreeMap kann auch verwendet werden, um Schlüssel-Wert-Paare in sortierter Reihenfolge zu speichern.

Der folgende Code demonstriert das Sortieren einer Map von ganzen Zahlen mit der sort()-Methode:

public static void main(String[] args) {
    Map<Integer, String> map = new TreeMap<Integer, String>();
    map.put(6, "Apple");
    map.put(3, "Banana");
    map.put(1, "Mango");
    map.put(9, "Orange");

    System.out.println("Map vor dem Sortieren: " + map);

    // Sortieren nach Schlüsseln
    Map<Integer, String> sortedByKeyMap = new TreeMap<Integer, String>(map);
    System.out.println("Map nach dem Sortieren nach Schlüsseln: " + sortedByKeyMap);

    // Sortieren nach Wert
    List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>(map.entrySet());
    Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
        public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
            return (o1.getValue()).compareTo(o2.getValue());
        }
    });

    Map<Integer, String> sortedByValueMap = new LinkedHashMap<Integer, String>();
    for (Map.Entry<Integer, String> entry : list) {
        sortedByValueMap.put(entry.getKey(), entry.getValue());
    }
    System.out.println("Map nach dem Sortieren nach Werten: " + sortedByValueMap);
}

Um diesen Code auszuführen, navigieren Sie im Terminal zum Verzeichnis ~/project und führen Sie die folgenden Befehle aus:

$ javac Sorting.java
$ java Sorting

Dieser Code wird die Map nach ihren Schlüsseln und Werten sortieren.

Zusammenfassung

In diesem Lab wurde gezeigt, wie man in Java verschiedene Datenstrukturen sortiert. Wir haben gelernt, wie man Arrays, Sammlungen und Maps sortiert. Wir haben auch gelernt, wie man benutzerdefinierte Klassenobjekte mit den Schnittstellen Comparable und Comparator sortiert. Die sort()-Methode der Collections- und Arrays-Klasse wurden verwendet, um Listen und Arrays zu sortieren. Schließlich haben wir gelernt, wie man Maps nach ihren Werten und Schlüsseln sortiert.