Java Collection: Alles über das Java Collection Framework!

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 06.07.2022
    zuletzt aktualisiert am: 05.02.2023

    Das Java Collections Framework im Überblick!

    In Java ist Collection ein Framework, das eine Reihe von eingebauten Klassen und Interfaces enthält. Mit dem Java Collection Framework können wir verschiedene Datenstrukturoperationen durchführen, wie z. B. speichern, manipulieren, sortieren, traversieren und so weiter.

    Dieses kleine Tutorial gibt eine kleine Einführung in folgende Themen:

    • Was ist das Java Collection Framework?
    • Hierarchie des Java Collection Frameworks
    • Das Java Collection Interface
    • Methoden der Java Collection-Schnittstelle
    • Die verschiedenen Klassen des Java Collection Frameworks

    So, lass uns loslegen!

    Was ist das Java Collection Framework?

    Bei dem Java Collection Framework handelt es sich um einen Teil des java.util-Pakets. Das Framework erlaubt es uns vier verschiedene Arten von abstrakten Datentypen zu erstellen und bietet zudem vordefinierte Methoden, um mit ebendiesen zu arbeiten.

    Java Collection Framework Hierarchie

    Das Paket java.util enthält alle wesentlichen Schnittstellen und Klassen, die für die Java Collection benötigt werden.

    Das Java Interface Iterable des Java Collection Frameworks bietet den Iterator, der es ermöglicht, durch alle Sammlungen zu iterieren.

    Die Iterable-Schnittstelle kann durch die Hauptschnittstelle Collection erweitert werden. Die Collection-Schnittstelle dient als Basis/Wurzel für das Collection-Framework und kann daher um alle Collections erweitert werden.

    • Das Iterable-Interface wird durch die Collection-Schnittstelle erweitert, die wiederum durch drei weitere Interfaces erweitert wird: Set, List und Queue. Mehr über das Thema Java Iterator erfahren.
    • Drei Klassen: LinkedList, Vector und ArrayList implementieren die List-Schnittstelle, während die Vector-Klasse durch die Stack-Klasse erweitert wird.
    • Die Schnittstelle Set wird von den Klassen HashSet und LinkedHashSet geerbt, außerdem wird sie durch die Schnittstelle SortedSet erweitert, die wiederum von der Klasse TreeSet implementiert wird.
    • Die Queue-Schnittstelle wird von der PriorityQueue-Klasse implementiert und durch die Deque-Schnittstelle erweitert, die wiederum von der ArrayDeque-Klasse implementiert wird.

    Die einzelnen Java Collection Interfaces

    Die Java-Schnittstelle kann Variablen und Methoden enthalten, und standardmäßig werden die Methoden in einer Schnittstelle als abstrakt deklariert. Die nachstehende Tabelle vermittelt ein detailliertes Verständnis des Collections-Interfaces:

    SchnittstellennameBeschreibung
    SetEs kann keine doppelten Elemente speichern.
    ListSie verwaltet die geordnete Sammlung der Elemente.
    QueueEine lineare Sammlung, die dem FIFO-Prinzip (First-In-First-Out) folgt.
    DequeDouble-Ended (zweifach endende) Warteschlange Ermöglicht das Einfügen und Löschen von Elementen auf beiden Seiten der Warteschlange.
    MapSie kann keine redundanten Elemente speichern und speichert Daten im Schlüssel-Wert-Paar-Format.
    SortedSetOrdnet die Elemente in aufsteigender Reihenfolge an.

    Methoden der Java Collections-Schnittstelle

    In der folgenden Tabelle sind die verschiedenen Methoden des Collections-Interfaces aufgeführt.

    MethodeBeschreibung
    add()Wird verwendet, um Elemente zur Sammlung hinzuzufügen.
    remove()Wird verwendet, um die Elemente der Sammlung zu löschen.
    clear()Löscht/leert alle Elemente der Sammlung.
    isEmpty()Testet, ob eine Sammlung leer ist oder nicht.
    size()Wird verwendet, um die Gesamtzahl der Elemente einer Sammlung zu ermitteln.
    equals(object el)Wird verwendet, um ein Element mit einer Sammlung zu vergleichen.
    retainAll()Wird verwendet, um die Elemente einer Sammlung beizubehalten.
    toArray()Wird verwendet, um eine Sammlung in ein Array umzuwandeln.
    contains()Prüft, ob ein Wert in einer Sammlung vorhanden ist oder nicht.
    spliterator()Erzeugt einen Spliterator über die Elemente der Sammlung.
    max()Findet den größten/maximalen Wert in einer Sammlung.

    Wie funktioniert der abstrakte Datentyp Java List?

    Betrachten wir den folgenden Codeschnipsel, um zu verstehen, wie das List-Inteface in Java funktioniert:

    import java.util.ArrayList;
    import java.util.List;
    public class CollectionExample {
        public static void main(String[] args) {
            List < String > listItems = new ArrayList < > ();
            listItems.add("Java");
            listItems.add("JavaScript");
            listItems.add("C++");
            listItems.add("PHP");
            for (String list: listItems) {
                System.out.println(list);
            }
        }
    }

    Im obigen Schnipsel haben wir eine Java List erstellt und vier Elemente mit der vordefinierten Methode add() eingefügt.

    Wir haben nun die List-verwenden mit den einzelnen Methoden, inklusive einer Methodenbeschreibung (Method description)!

    Das obige Snippet bestätigt, dass alle vier Elemente erfolgreich in die Liste eingefügt wurden.

    Wie funktioniert die Deque-Schnittstelle?

    Der unten stehende Codeausschnitt erklärt die Funktionsweise der Deque-Schnittstelle:

    import java.util.Deque;
    import java.util.ArrayDeque;
    public class Main {
        public static void main(String[] args) {
                Deque<String> dq = new ArrayDeque<>();
                dq.add("Java");
                dq.add("PHP");
                dq.add("JavaScript");
                dq.add("C++");
    
                for (String list : dq) {
                    System.out.println(list);
                }
         }
    }

    Im obigen Code haben wir zunächst die Deque instanziiert und anschließend mit der Methode add() vier Elemente in die Deque eingefügt:

    Das Java Collection Framework im Überblick!

    So funktioniert das Deque-Interface in Java. In ähnlicher Weise können wir jede beliebige Sammlungsschnittstelle und -methode je nach Situation verwenden.

    Was sind Collection-Klassen in Java?

    Die unten stehende Tabelle zeigt verschiedene Collection-Klassen, welche verwendet werden können, um fortgeschrittenere Datenstrukturen zu entwickeln:

    KlassennameBeschreibung
    HashSetSpeichert die Elemente mithilfe einer Hash-Tabelle und folgt keiner Reihenfolge beim Speichern der Elemente.
    LinkedHashSetBehält die Einfügereihenfolge bei und erlaubt Nullelemente.
    TreeSetEs speichert die Elemente in aufsteigender Reihenfolge.
    ArrayListBehält die Einfügereihenfolge bei und kann doppelte Elemente speichern.
    TreeMapSie speichert eindeutige Elemente als Schlüssel-Wert-Paare.
    LinkedListBehält die Einfügereihenfolge bei und kann doppelte Elemente speichern.
    HashMapSie speichert Elemente auf der Grundlage der Schlüssel und kann nur eindeutige Schlüssel haben.
    VectorVerwendet ein dynamisches Array zum Speichern der Elemente.
    StackEr folgt dem LIFO-Prinzip (last-in-first-out).

    Wie funktioniert die HashSet-Klasse in Java?

    Betrachten wir das folgende Beispiel, um zu verstehen, wie die HashSet-Klasse in Java funktioniert:

    import java.util.HashSet;
    import java.util.Iterator;
    
    public class Main {
        public static void main(String[] args) {
            HashSet<String> hset = new HashSet<>();
            hset.add("Java");
            hset.add("PHP");
            hset.add("C++");
            hset.add("JavaScript");
            hset.add("C++");
    
            hset.remove("PHP");
            Iterator<String> iterate = hset.iterator();
            while (iterate.hasNext()) {
                System.out.println(iterate.next());
            }
        }
    }

    Im obigen Ausschnitt haben wir mit der add()-Methode fünf Elemente zu einem Hashset hinzugefügt. Anschließend haben wir die remove()-Methode verwendet, um „PHP“ zu löschen. Schließlich haben wir den Iterator verwendet, um durch alle Elemente zu traversieren:

    Das Java HashSet im Überblick!

    Die Ausgabe zeigt, dass das HashSet das doppelte Element nicht enthält; stattdessen zeigt es C++ nur einmal. Außerdem hat die remove()-Methode das angegebene Element erfolgreich gelöscht.

    Wie funktioniert LinkedList?

    Betrachten wir den folgenden Codeschnipsel, der die Funktionsweise von LinkedList erklärt:

    import java.util.LinkedList;
    
    public class Main {
        public static void main(String[] args) {
            LinkedList < String > listItems = new LinkedList < > ();
            listItems.add("Java");
            listItems.add("PHP");
            listItems.add("JavaScript");
            listItems.add("C++");
            listItems.add("PHP");
            System.out.println("Elemente insgesamt: " + listItems.size());
            for (String list: listItems) {
                System.out.println(list);
            }
        }
    }

    Wir haben die add()-Methode verwendet, um Elemente in die LinkedList einzufügen; danach haben wir die size()-Methode verwendet, um die Größe der Liste zu ermitteln, und schließlich haben wir die for-each-Schleife verwendet, um die gesamte Liste zu durchlaufen:

    Die letzte Java Collection in der Praxis!

    Die Ausgabe bestätigt das Funktionieren des obigen Programms, da es die Elemente erfolgreich in die Liste eingefügt und die Größe der Elemente entsprechend berechnet hat.

    Zusammenfassung: Java Collection

    Java Collection ist eine kollektive Einheit von Objekten in Form einer Gruppe, die den Benutzern hilft, Operationen wie Suchen, Durchlaufen, Sortieren, Einfügen, Löschen usw. an einer Gruppe von Elementen durchzuführen. Die Struktur der Java Collection enthält eine Reihe von eingebauten Klassen, Schnittstellen und APIs. Für jede Sammlung können mehrere Operationen durchgeführt werden, z. B. add(), remove(), clear(), size() usw. Dieser Artikel erklärt verschiedene Aspekte des Java Collection Frameworks.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig