Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java - Collections-Framework

Vor Java 2 stellte Java Ad-hoc-Klassen wie Dictionary, Vector, Stack bereit und Eigenschaften Gruppen von Objekten zu speichern und zu manipulieren. Obwohl diese Klassen sehr nützlich waren, fehlte ihnen ein zentrales, vereinheitlichendes Thema. Daher unterschied sich die Art und Weise, wie Sie Vector verwendet haben, von der Art und Weise, wie Sie Eigenschaften verwendet haben.

Das Sammlungs-Framework wurde entwickelt, um mehrere Ziele zu erreichen, wie z. B. −

Zu diesem Zweck ist das gesamte Sammlungs-Framework um eine Reihe von Standardschnittstellen herum entworfen. Mehrere Standardimplementierungen wie LinkedList, HashSet, und TreeSet , dieser Schnittstellen werden bereitgestellt, die Sie so verwenden können, wie sie sind, und Sie können auch Ihre eigene Sammlung implementieren, wenn Sie dies wünschen.

Ein Sammlungsframework ist eine einheitliche Architektur zum Darstellen und Bearbeiten von Sammlungen. Alle Sammlungs-Frameworks enthalten Folgendes:−

Zusätzlich zu Sammlungen definiert das Framework mehrere Kartenschnittstellen und -klassen. Karten speichern Schlüssel/Wert-Paare. Obwohl Karten keine Sammlungen sind in der richtigen Verwendung des Begriffs, aber sie sind vollständig in Sammlungen integriert.

Die Sammlungsschnittstellen

Das Sammlungsframework definiert mehrere Schnittstellen. Dieser Abschnitt bietet einen Überblick über jede Schnittstelle −

Sr.No. Schnittstelle &Beschreibung
1 Die Sammlungsschnittstelle

Dadurch können Sie mit Gruppen von Objekten arbeiten; es steht an der Spitze der Sammlungshierarchie.

2 Das Listen-Interface

Dies erweitert die Sammlung und eine Instanz von List speichert eine geordnete Sammlung von Elementen.

3 Der Satz

Dies erweitert Collection, um Sets zu handhaben, die eindeutige Elemente enthalten müssen.

4 Das SortedSet

Dies erweitert Set, um sortierte Sets zu handhaben.

5 Die Karte

Dies ordnet eindeutige Schlüssel Werten zu.

6 Der Map.Entry

Dies beschreibt ein Element (ein Schlüssel/Wert-Paar) in einer Map. Dies ist eine innere Klasse von Map.

7 Die SortedMap

Dadurch wird Map so erweitert, dass die Schlüssel in aufsteigender Reihenfolge beibehalten werden.

8 Die Aufzählung

Diese Legacy-Schnittstelle definiert die Methoden, mit denen Sie die Elemente in einer Sammlung von Objekten aufzählen (einzeln abrufen) können. Diese Legacy-Schnittstelle wurde durch Iterator ersetzt.

Die Sammelklassen

Java stellt eine Reihe von Standardsammlungsklassen bereit, die Sammlungsschnittstellen implementieren. Einige der Klassen bieten vollständige Implementierungen, die unverändert verwendet werden können, und andere sind abstrakte Klassen, die Skelettimplementierungen bereitstellen, die als Ausgangspunkte für die Erstellung konkreter Sammlungen verwendet werden.

Die Standardsammlungsklassen sind in der folgenden Tabelle zusammengefasst −

Sr.No. Klasse &Beschreibung
1

AbstractCollection

Implementiert den größten Teil der Collection-Schnittstelle.

2

Zusammenfassungsliste

Erweitert AbstractCollection und implementiert den größten Teil der List-Schnittstelle.

3

AbstractSequentialList

Erweitert AbstractList zur Verwendung durch eine Sammlung, die sequenziellen statt zufälligen Zugriff auf ihre Elemente verwendet.

4 VerknüpfteListe

Implementiert eine verknüpfte Liste durch Erweitern von AbstractSequentialList.

5 ArrayList

Implementiert ein dynamisches Array durch Erweitern von AbstractList.

6

AbstractSet

Erweitert AbstractCollection und implementiert den größten Teil der Set-Schnittstelle.

7 HashSet

Erweitert AbstractSet zur Verwendung mit einer Hash-Tabelle.

8 LinkedHashSet

Erweitert HashSet, um Wiederholungen der Einfügereihenfolge zu ermöglichen.

9 TreeSet

Implementiert eine in einem Baum gespeicherte Menge. Erweitert AbstractSet.

10

AbstractMap

Implementiert den größten Teil der Map-Schnittstelle.

11 HashMap

Erweitert AbstractMap, um eine Hash-Tabelle zu verwenden.

12 Baumkarte

Erweitert AbstractMap, um einen Baum zu verwenden.

13 WeakHashMap

Erweitert AbstractMap, um eine Hash-Tabelle mit schwachen Schlüsseln zu verwenden.

14 LinkedHashMap

Erweitert HashMap, um Iterationen in der Einfügungsreihenfolge zu ermöglichen.

15 IdentityHashMap

Erweitert AbstractMap und verwendet Referenzgleichheit beim Vergleichen von Dokumenten.

Die AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList und AbstractMap Klassen stellen Skelettimplementierungen der Core-Collection-Schnittstellen bereit, um den Aufwand für deren Implementierung zu minimieren.

Die folgenden von java.util definierten Legacy-Klassen wurden im vorherigen Kapitel besprochen −

Sr.No. Klasse &Beschreibung
1 Vektor

Dies implementiert ein dynamisches Array. Es ist ähnlich wie ArrayList, aber mit einigen Unterschieden.

2 Stapeln

Stack ist eine Unterklasse von Vector, die einen standardmäßigen Last-In-First-Out-Stack implementiert.

3 Wörterbuch

Dictionary ist eine abstrakte Klasse, die ein Speicher-Repository für Schlüssel/Werte darstellt und ähnlich wie Map.

funktioniert
4 Hashtabelle

Hashtable war Teil des ursprünglichen java.util und ist eine konkrete Implementierung eines Wörterbuchs.

5 Eigenschaften

Properties ist eine Unterklasse von Hashtable. Es wird verwendet, um Wertelisten zu verwalten, in denen der Schlüssel ein String und der Wert ebenfalls ein String ist.

6 BitSet

Eine BitSet-Klasse erstellt einen speziellen Array-Typ, der Bitwerte enthält. Dieses Array kann nach Bedarf vergrößert werden.

Die Erfassungsalgorithmen

Das Sammlungsframework definiert mehrere Algorithmen, die auf Sammlungen und Karten angewendet werden können. Diese Algorithmen sind als statische Methoden innerhalb der Collections-Klasse definiert.

Einige der Methoden können eine ClassCastException auslösen , die auftritt, wenn versucht wird, inkompatible Typen zu vergleichen, oder eine UnsupportedOperationException , die auftritt, wenn versucht wird, eine nicht änderbare Sammlung zu ändern.

Sammlungen definieren drei statische Variablen:EMPTY_SET, EMPTY_LIST und EMPTY_MAP. Alle sind unveränderlich.

Sr.No. Algorithmus &Beschreibung
1 Die Erfassungsalgorithmen

Hier ist eine Liste aller Algorithmenimplementierungen.

Wie benutzt man einen Iterator?

Oft möchten Sie die Elemente in einer Sammlung durchlaufen. Beispielsweise möchten Sie möglicherweise jedes Element anzeigen.

Der einfachste Weg, dies zu tun, ist die Verwendung eines Iterators, bei dem es sich um ein Objekt handelt, das entweder das Iterator- oder das ListIterator-Interface implementiert.

Iterator ermöglicht es Ihnen, eine Sammlung zu durchlaufen und Elemente zu erhalten oder zu entfernen. ListIterator erweitert Iterator, um das bidirektionale Durchlaufen einer Liste und die Änderung von Elementen zu ermöglichen.

Sr.No. Iterator-Methode und -Beschreibung
1 Verwendung von Java Iterator

Hier ist eine Liste aller Methoden mit Beispielen, die von den Schnittstellen Iterator und ListIterator bereitgestellt werden.

Wie verwende ich einen Komparator?

Sowohl TreeSet als auch TreeMap speichern Elemente in einer sortierten Reihenfolge. Es ist jedoch der Komparator, der genau definiert, in welcher sortierten Reihenfolge bedeutet.

Mit dieser Schnittstelle können wir eine bestimmte Sammlung auf verschiedene Arten sortieren. Außerdem kann diese Schnittstelle verwendet werden, um alle Instanzen jeder Klasse zu sortieren (selbst Klassen, die wir nicht ändern können).

Sr.No. Iterator-Methode und -Beschreibung
1 Verwendung von Java Comparator

Hier ist eine Liste aller Methoden mit Beispielen, die von Comparator Interface bereitgestellt werden.

Zusammenfassung

Das Java Collections Framework gibt dem Programmierer Zugriff auf vorgefertigte Datenstrukturen sowie auf Algorithmen zu ihrer Bearbeitung.

Eine Sammlung ist ein Objekt, das Verweise auf andere Objekte enthalten kann. Die Sammlungsschnittstellen deklarieren die Operationen, die für jeden Sammlungstyp ausgeführt werden können.

Die Klassen und Schnittstellen des Sammlungs-Frameworks befinden sich im Paket java.util.


Java

  1. Java-Operatoren
  2. Java-Kommentare
  3. Java for-each-Schleife
  4. Java-Strings
  5. Java-Schnittstelle
  6. Anonyme Java-Klasse
  7. Java-Versuch-mit-Ressourcen
  8. Java-Anmerkungen
  9. Java-Assertionen
  10. Tutorial zu C#-Sammlungen mit Beispielen