(COLLECTIONS II PART 1 / 3) Die Kollektion des Typs LIST...


Im ersten Teil unserer Kollektion Reihe, möchte ich mit euch auf das Begriff List hinübergehen.
Im zweiten mit dem Sets und schließlich im letzten Teil werde ich euch die Funktion und die Eigenschaften von Maps erkären.

Eine List ist eine beliebig große Liste von Elementen welches vom beliebigen Typs abhängig sind und auf diese wahlfrei sowie sequenziell zugegriffen kann. So gibt es für das Interface (Schnittstelle) List beispielsweise die Implementierungsmöglichkeiten wie das LinkedList, ArrayList.

Die Kollektion des Typs List

Eine Collection vom Typ List ist eine geordnete Menge von Objekten, auf die entweder sequenziell oder über ihren Index (Index = Position) zugegriffen werden kann. Wie bei den Arrays hat das erste Element den Index 0 und das letzte Element den Index size() -1. Mit size() -1 meinen wir, dass wenn wir die Größe des Array erfahren wollen die Methode arrayReferenz.size() starten. Diese Methode gibt uns die Größe des Arrays. Da wir ab 0 anfangen zu zählen, müssen wir eine Indexverschiebung unternehmen sodass wir vom Index 1 anfangen zu zählen. Der Index gibt uns Vorteile wie bei einer beliebigen Stelle der Liste ein Element hinzufügen, zu löschen, zu ändern und weitere Änderungen zu unternehmen.

Welche Implementierungen gibt es?

LinkedList:
Die Klasse LinkedList realisiert eine Liste, deren Elemente als Doppelt verkettete lineare Liste gehalten werden. Ihre Einfüge- und Löschoperationen sind im Prinzip performanter als die der ArrayList. Der wahlfreie Zugriff ist dagegen normalerweise langsamer.

Methoden/Funktionen der Implementierung LinkedList:
LinkedList Objekt definieren.

LinkedList<String> meineListe = new LinkedList<String>();

meineListe.addFirst(“Tom“);
meineListe.addFirst(“Romeo“);
meineListe.addFirst(“Harry“);
meineListe.addFirst(“Dick“);
meineListe.next();
meineListe.remove();

Die Methode add fügt ein neues Element unmittelbar vor dem Positionszeiger ein.

Die Methode remove ist nur zulässig, wenn vorher next aufgerufen wurde; dann wird das von next zurückgegebene Element aus der Liste entfernt.

Es gibt auch noch die Methode hasPrevious, previous, die den Positionszeiger nach vorne bewegen. Die Methode remove darf auch nach einem Aufruf von previous aufgerufen werden und entfernt dann das von previous zurückgegebene Element aus der Liste.

ArrayList:
Die Klasse ArrayList implementiert die Liste als Array von Elementen, das bei Bedarf vergrößert wird. Hier ist der wahlfreie Zugriff schneller, aber bei großen Elementzahlen kann das Einfügen und Löschen länger dauern als bei einer LinkedList.

Methoden/Funktionen der Implementierung ArrayList:
ArrayList Objekt definieren.

ArrayList<String> liste = new ArrayList<String>();
Element ausgeben = liste.get(14);
Element einfügen = liste.add(“Esmer“);
Element einfügen mit Positionsangabe = liste.add(0, “Esmer“);
Element ändern = liste.set(0, “Esmu“);
Element entfernen = liste.remove(“Esmer“);
= liste.remove(1) //Index
Größe zurückgeben = liste.size();
Prüfen, ob das Objekt enthalten ist = liste.contains(“Esmer“);
Welches Index hat das Objekt = liste.indexOf(“Esmer“);
Liste löschen = liste.clear();

Unterschied zwischen ArrayList und LinkedList:
- ArrayList ist schneller bei Zugriff auf Einzelne Elemente.
Der Unterschied zwischen der herkömmlichen Array und der ArrayList ist, dass der ArrayList Dynamisch ist. Was bedeutet, dass die Größe der Liste veränderbar ist. Dies gibt auch für die LinkedList.

- LinkedList ist schneller bei Löschen und Einfügen der Elemente.
Bei einer LinkedList welches auch auf deutsch als verkettete Liste benannt wird, haben alle Listenelemente eine Verbindung zum jeweiligen Vorgänger beziehungsweise der Nachfolger. Existiert also kein Nachfolger, so wird das letzte Element auf das NULL- Referenz verweist. Der Vorteil bei einer Verketteten Liste besteht darin, dass im Vergleich zu einer ArrayList die Elemente schneller hinzugefügt und gelöscht werden können. Will man jedoch die Elemente an einer bestimmten Stelle auslesen, so ist der Zugriff langsamer, da die Verbindungen bis zu dem passenden Element durchlaufen werden müssen.


Ich habe zur Vereinfachung und zur Verständnis die Beispielcodes für ArrayList und LinkedList >>Hier<< hochgeladen. Sobald ihr fragen habt, könnt ihr diese als Kommentar unten schreiben. 

Ich habe >>Hier<< ein BeispielProgramm AdressBuch hochgeladen. Ihr könnt diesen Programm Kompilieren und euch ein Übersicht über das Programmieren mit ArrayList und LinkedList verschaffen. Viel SPASS ;)
 

Kommentare

  1. Hallo Muhammet. Ich möchte mich bei dir bedanken, dass du echt coole Rezensionen hoch lädst. Meine Frage bezieht sich auf deine Anwendung AdressBuch, welches du auf GitHub hochgeladen hast. Kannst du mir nochmal mitteilen, warum du explizit ArrayList und nicht LinkedList in diesem Beispiel verwendet hast. Danke im voraus.

    AntwortenLöschen
    Antworten
    1. Kann ich dir gerne sagen. Ich habe bewusst ArrayList angewendet statt LinkedList da ich mit ArrayList jederzeit die Elemente mit dem Jeweiligen Index überschreiben kann. Ich hoffe, dass ich deine Frage hiermit beantwortet habe.

      Löschen

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python