Latest web development tutorials

Java Collections Framework

Lange bevor in Java 2, Java bietet Ad-hoc-Kategorie. Zum Beispiel: Wörterbuch, Vektor, Stapel, und Eigenschaften Klassen Gruppen von Objekten zu speichern und zu manipulieren.

Obwohl diese Klassen sind sehr nützlich, aber es fehlt eine zentrale, verbindende Thema. Aus diesem Grund verwenden die Vector-Klasse Art und Weise und nutzen die Eigenschaften der Klasse eine ganz andere Art und Weise hat.

Collections Framework wurde entwickelt, um die folgenden Ziele zu erreichen.

  • Der Rahmen muss eine hohe Leistung. Das Basis-Set (dynamische Arrays, verkettete Listen, Bäume, Hash-Tabellen) Umsetzung muss auch effizient sein.
  • Das Rahmenwerk ermöglicht es für verschiedene Arten von Sammlungen, in ähnlicher Weise mit einem hohen Grad an Interoperabilität.
  • Erweiterung und Anpassung einer Sammlung muss einfach sein.

Zu diesem Zweck wird die gesamte Sammlung Rahmen um eine Reihe von Standard-Schnittstellen entwickelt. Sie können diese Standardschnittstellen verwenden, um zu erreichen, wie zum Beispiel: LinkedList, HashSet, TreeSet und dergleichen, zusätzlich können Sie auch Ihre eigene Sammlung über diese Schnittstellen implementieren.

Collections-Framework ist eine einheitliche Architektur darzustellen und zu manipulieren Sammlungen verwendet werden. Alle Sammlungen Rahmen enthält folgende Komponenten:

  • Schnittstelle: Es ist ein abstrakter Datentyp repräsentiert Sammlung. Schnittstelle erlaubt die unabhängige Manipulation der Sammlung Details ihrer Vertreter. In der objektorientierten Sprachen, bilden Schnittstellen im Allgemeinen eine Hierarchie.
  • Die Umsetzung (Klasse): ist die Realisierung einer Sammlung von Schnittstellen. Im Wesentlichen sind sie wiederverwendbar Datenstrukturen.
  • Algorithmus: einige nützliche Rechen Objekt, das die Schnittstelle in der Sammlung Verfahren zur Durchführung, zum Beispiel implementiert: Suchen und Sortieren. Diese Algorithmen sind Multi-State genannt, es liegt daran, dass die gleiche Methode verschiedene Implementierungen auf einer ähnlichen Schnittstelle haben.

Neben der Sammlung definiert der Rahmen auch mehrere Map-Schnittstellen und Klassen. Karte wird in Schlüssel / Wert-Paare gespeichert. Trotz Karte nicht Sammlungen, aber sie sind in der Sammlung vollständig integriert.


collection-Interfaces

Collection Framework definiert eine Reihe von Schnittstellen. Dieser Abschnitt enthält einen Überblick über die einzelnen Schnittstellen:

Nein. Schnittstellenbeschreibung
1 Collection-Schnittstelle ermöglicht es Ihnen, eine Gruppe von Objekten zu verwenden, ist die Root-Schnittstelle Sammlung Hierarchie.
2 Liste Interface - Elemente geerbt von Sammlung und einer List - Instanz speichern eine geordnete Sammlung.
3 Set
Geerbt von Sammlung, es ist eine Kollektion , die keine doppelten Elemente enthält.
4 SortedSet
In einem geordneten Folge den Satz zu speichern.
5 Karte
Die einzigen Karten Tasten auf Werte.
6 Map.Entry
Eine Beschreibung Element (Schlüssel / Wert-Paare) in einer Karte. Karte ist eine innere Klasse.
7 SortedMap
Geerbt von der Karte, so aufsteigend Key gehalten.
8 Aufzählung
Dies ist eine traditionelle Definition von Schnittstellen und Methoden, mit denen Sie (einmal a) erhaltenen Objekte in der Sammlung Elemente aufzuzählen. Diese Tradition wurde von der Schnittstelle Iterator ersetzt.

Sammlungen

Java bietet eine Reihe von Standard-Klasse implementiert die Collection-Schnittstelle. Einige von ihnen sind bestimmte Klassen, die sie verwenden können, während andere abstrakte Klassen sind, stellt eine teilweise Umsetzung der Schnittstelle.

Standard-Collection-Klassen sind in der folgenden Tabelle zusammengefasst:

Nein. Klasse Beschreibung
1 Abstract
Für die meisten der Sammlung Schnittstellen erreichen.
2 AbstractList
Vererbung in Abstract und die meisten der Liste Schnittstelle erreicht.
3 AbstractSequentialList
Geerbt von AbstractList, bietet es Zugriff auf Datenelemente in der Kette anstatt mit wahlfreiem Zugriff.
4 LinkedList
Geerbt von AbstractSequentialList, es implementiert eine verknüpfte Liste.
5 Arraylist
Durch Vererbung AbstractList, dynamische Arrays.
6 AbstractSet
Vererbung in Abstract und die meisten der Set-Interface.
7 HashSet
Er erbte AbstractSet und eine Hash-Tabelle verwenden.
8 LinkedHashSet
Mit vorhersehbare Iterationsreihenfolge und verknüpfte Liste Hash - Tabelle Set - Schnittstelle.
9 TreeSet
Geerbt von AbstractSet, Elemente der natürlichen Ordnung der Elemente, um mit.
10 AbstractMap
Für die meisten der Map-Schnittstelle erreichen.
11 HashMap
HashMap ist eine Hash-Tabelle, die den Inhalt von Schlüssel-Wert-Paare (Schlüssel-Wert) Mapping speichert.
HashMap geerbt AbstractMap, erkannte Karte, klonbar, java.io.Serializable Schnittstelle.
12 TreeMap
Er geerbt AbstractMap, und die Verwendung eines Baumes.
13 WeakHashMap
Geerbte AbstractMap Klasse, verwenden Sie eine Hash-Tabelle schwache Schlüssel.
14 LinkedHashMap
Geerbt von HashMap, die Elemente der natürlichen Ordnung der Elemente unter Verwendung sortiert werden.
15 IdentityHashMap
AbstractMap Klassenvererbung, unter Verwendung von Referenz-Gleichheit, wenn Dokumente zu vergleichen.

Im vorherigen Tutorial haben wir durch java.util Klassen definiert im Paket diskutiert wurde, wie folgt:

Nein. Klasse Beschreibung
1 Vektor
Vector-Klasse implementiert ein dynamisches Array. Und Arraylist und ähnliche, aber die beiden sind unterschiedlich.
2 Stapel
Stack ist eine Unterklasse von Vector, die ein Standard-LIFO-Stapel implementiert.
3 Wörterbuch
Dictionary-Klasse ist eine abstrakte Klasse, die verwendet wird Schlüssel / Wert-Paare, ähnlich einer Sammelklage und Karte zu speichern.
4 Hashtable
Hashtable ist Teil des ursprünglichen java.util ein Wörterbuch konkrete Umsetzung ist.
5 Eigenschaften
Eigenschaften erbt von Hashtable. Stellt eine persistente Satz von Eigenschaften. Jeder Schlüssel und dem entsprechenden Wert in der Eigenschaftenliste eine Zeichenfolge ist.
6 BitSet
Ein Bitset-Klasse erstellt eine spezielle Art von Array mit dem Bit-Wert zu halten. BITSET mit der Größe des Arrays erhöhen müssen.

Ein Bitset-Klasse erstellt eine spezielle Art von Array mit dem Bit-Wert zu halten. BITSET mit der Größe des Arrays erhöhen müssen.


Sammlung Algorithmus

Collections Framework definiert mehrere Algorithmen können für die Erfassung und Kartierung verwendet werden. Diese Algorithmen sind statische Methoden der Klasse wird als eine Sammlung definiert.

Beim Versuch, inkompatible Typen zu vergleichen, können einige Methoden einen Classcast werfen. Beim Versuch, eine nicht änderbare Satz zu ändern, eine Ausnahme UnsupportedOperationException.

Sammlung definiert drei statische Variablen: EMPTY_SET EMPTY_LIST, EMPTY_MAP von. Diese Variablen sind unveränderlich.

Nein. Algorithmus Beschreibung
1 Sammlung Algorithmen
Hier ist eine Liste aller Algorithmen.

Wie der Iterator zu verwenden

Normalerweise werden Sie eine Sammlung von Elementen zu durchqueren. Zum Beispiel wird jedes Element der Sammlung angezeigt.

Tun Sie es der einfachste Weg ist, einen Iterator zu verwenden, ist es eine Aufgabe, die die Iterator-Schnittstelle oder ListIterator-Schnittstelle implementiert.

Iteratoren, so dass können Sie das Element entfernen, um durch die Zirkulation und festlegen. ListIterator geerbt Iterator, so dass zwei-Weg, um die Liste durchlaufen und Elemente ändern.

Alle Methoden und ListIterator Iterator - Schnittstelle beispielhaft aufgeführt hier zur Verfügung gestellt.

Wie der Komparator zu verwenden,

TreeSet und TreeMap Sortierreihenfolge nach dem Speicherelement. Dies ist jedoch durch das Gerät zu vergleichen in Bezug auf welche Art, um genau festgelegt.

Diese Schnittstelle ermöglicht es uns, auf unterschiedliche Weise einen Satz zu sortieren.

Nein. Vergleich von Methoden beschrieben
1 Verwenden Sie Java Vergleicher
Komparator Schnittstelle stellt alle Methoden hier aufgeführten beispielhaft

Zusammenfassung

Java Collections Framework bietet dem Programmierer mit vorverpackten Datenstrukturen und Algorithmen, sie zu manipulieren.

Eine Sammlung ist ein Objekt, das Verweise auf andere Objekte halten kann. Sammlung Betrieb Interface-Deklaration für jede Art der Sammlung durchgeführt werden.

Collections Framework Klassen und Schnittstellen sind im Paket java.util.