Latest web development tutorials

Java Collections Framework

Molto prima che in Java 2, Java fornisce categoria ad hoc. Per esempio: le classi Dizionario, Vector, Stack, e utilizzati per immagazzinare e manipolare gruppi di oggetti.

Anche se queste classi sono molto utili, ma mancano di un tema unificante centrale. Per questo motivo, utilizzare la classe Vector modo e utilizzare la classe Properties ha un modo molto diverso.

Quadro Collezioni è progettato per soddisfare i seguenti obiettivi.

  • Il quadro deve essere ad alte prestazioni. Il set di base (gli array dinamici, liste collegate, alberi, tabelle hash) attuazione deve anche essere efficiente.
  • Il quadro consente diversi tipi di collezioni, in modo simile con un elevato grado di interoperabilità.
  • Estensione e adattamento di una raccolta deve essere semplice.

A tal fine, l'intera struttura di raccolta è incentrata su un insieme di interfacce standard. È possibile utilizzare queste interfacce standard da raggiungere, come ad esempio: LinkedList, HashSet, TreeSet e simili, in aggiunta è anche possibile implementare la propria collezione tramite queste interfacce.

Collezioni quadro è un'architettura unificata utilizzato per rappresentare e manipolare collezioni. Tutto quadro collezioni contiene quanto segue:

  • Interfaccia: Si tratta di un tipo di dato astratto rappresenta collezione. Interface consente la manipolazione indipendente dei dati di raccolta dei suoi rappresentanti. In linguaggi orientati agli oggetti, le interfacce generalmente formano una gerarchia.
  • Attuazione (classe): è la realizzazione di una collezione di interfacce. In sostanza, si tratta di strutture di dati riutilizzabili.
  • Algoritmo: qualche oggetto utile computazionale che implementa l'interfaccia del metodo di raccolta di eseguire, ad esempio: ricerca e l'ordinamento. Questi algoritmi sono chiamati multi-stato, è perché lo stesso metodo può avere diverse implementazioni su un'interfaccia simile.

Oltre alla collezione, il quadro definisce anche diverse interfacce Mappa e classi. Mappa è memorizzato in coppie chiave / valore. Nonostante Mappa non raccolte, ma sono completamente integrati nella collezione.


Interfacce Collection

quadro Collection definisce un numero di interfacce. Questa sezione fornisce una panoramica di ogni interfaccia:

No. Interfaccia Descrizione
1 interfaccia Collection consente di utilizzare un gruppo di oggetti, è la gerarchia di interfaccia radice Collection.
2 elementi di interfaccia Lista Ereditato da Collection e un'istanza lista del deposito un insieme ordinato.
3 insieme
Ereditato da Collection, è una collezione che non contiene elementi duplicati.
4 SortedSet
Situato in una successione ordinata per salvare il set.
5 mappa
Le chiavi solo mappe ai valori.
6 Map.Entry
Un elemento descrizione (coppie chiave / valore) in una mappa. Map è una classe interna.
7 SortedMap
Ereditato da Map, quindi Chiave tenuto in ordine crescente.
8 enumerazione
Si tratta di una definizione tradizionale di interfacce e metodi con cui è possibile enumerare (una volta ottenuto a) gli oggetti negli elementi di raccolta. Questa tradizione è stata sostituita dal iteratore interfaccia.

collezioni

Java fornisce una serie di classe standard implementa l'interfaccia Collection. Alcuni di loro sono classi specifiche che possono utilizzare, mentre altri sono classi astratte, fornisce una parziale attuazione dell'interfaccia.

classi collezione standard sono riassunte nella seguente tabella:

No. Classe Descrizione
1 AbstractCollection
Per raggiungere la maggior parte delle interfacce di raccolta.
2 AbstractList
Ereditarietà in AbstractCollection e ha raggiunto la maggior parte della interfaccia List.
3 AbstractSequentialList
Ereditato da AbstractList, fornisce l'accesso a elementi di dati della catena, piuttosto che ad accesso casuale.
4 LinkedList
Ereditato da AbstractSequentialList, implementa una lista collegata.
5 ArrayList
Attraverso eredità AbstractList, array dinamici.
6 AbstractSet
Ereditarietà in AbstractCollection e ha raggiunto la maggior parte dell'interfaccia Set.
7 HashSet
Ha ereditato AbstractSet, e utilizzare una tabella hash.
8 LinkedHashSet
Con ordine di iterazione prevedibile e legata interfaccia tavolo Set lista di hash.
9 TreeSet
Ereditato da AbstractSet, utilizzando elementi di ordine naturale degli elementi in ordine.
10 AbstractMap
Per ottenere la maggior parte dell'interfaccia Map.
11 HashMap
HashMap è una tabella hash, che memorizza i contenuti di coppie chiave-valore (chiave-valore) mappatura.
HashMap ereditato AbstractMap, ha realizzato l'interfaccia Map, Cloneable, java.io.Serializable.
12 TreeMap
Ha ereditato AbstractMap, e l'uso di un albero.
13 WeakHashMap
Classe AbstractMap ereditata, utilizzare una tabella hash chiavi deboli.
14 LinkedHashMap
Ereditato da HashMap, utilizzando gli elementi dell'ordine naturale degli elementi da ordinare.
15 IdentityHashMap
eredità di classe AbstractMap, con riferimento uguaglianza quando si confrontano i documenti.

Nel precedente tutorial abbiamo discusso per classi di java.util definite nel pacchetto, come segue:

No. Classe Descrizione
1 vettore
classe Vector implementa un array dinamico. E ArrayList e simili, ma i due sono diversi.
2 pila
Stack è una sottoclasse di Vector, che implementa uno stack LIFO standard.
3 dizionario
classe Dictionary è una classe astratta che viene utilizzata per memorizzare coppie chiave / valore, simili a una class action e mappa.
4 tabella hash
Tabella hash è parte del java.util originale è un dizionario concreta attuazione.
5 proprietà
Proprietà eredita da Hashtable. Rappresenta un insieme persistente di proprietà. Ogni chiave e il suo valore corrispondente nella lista proprietà è una stringa.
6 BitSet
Una classe bitset crea un particolare tipo di array per contenere il valore del bit. Bitset con la dimensione della matrice dovrà aumentare.

Una classe bitset crea un particolare tipo di array per contenere il valore del bit. Bitset con la dimensione della matrice dovrà aumentare.


algoritmo Collection

Collections Framework definisce diversi algoritmi possono essere utilizzati per la raccolta e la mappatura. Questi algoritmi sono metodi statici della classe è definito come un insieme.

Quando si cerca di confrontare i tipi incompatibili, alcuni metodi possono lanciare una ClassCastException. Quando si tenta di modificare un insieme non modificabile, un'eccezione UnsupportedOperationException.

Collezione definisce tre variabili statiche: EMPTY_SET EMPTY_LIST, EMPTY_MAP di. Queste variabili sono immutabili.

No. algoritmo Descrizione
1 Collezione Algoritmi
Ecco un elenco di tutti gli algoritmi.

Come utilizzare l'iteratore

In genere, si vuole attraversare un insieme di elementi. Ad esempio, viene visualizzato ciascun elemento della collezione.

Farlo nel modo più semplice è quello di utilizzare un iteratore, è un oggetto che implementa l'interfaccia Iterator o l'interfaccia ListIterator.

Iteratori, in modo che è possibile rimuovere l'elemento per ottenere o impostare dalla circolazione. ListIterator ereditato Iterator, permettendo a due vie traverse la lista e modificare gli elementi.

Tutti i metodi e l'interfaccia listIterator Iterator purché elencate qui a titolo di esempio.

Come utilizzare il comparatore

TreeSet e TreeMap Ordine secondo l'elemento di archiviazione. Tuttavia, questo è confrontando il dispositivo definito con precisione in termini di ciò che tipo di ordinamento.

Questa interfaccia ci permette in diversi modi per ordinare un set.

No. Il confronto dei metodi descritti
1 Usare Java comparatore
interfaccia comparatore fornisce tutti i metodi elencati qui a titolo di esempio

sommario

Java Collections Framework fornisce al programmatore con strutture di dati preconfezionati e algoritmi per manipolare loro.

Una raccolta è un oggetto che può contenere riferimenti ad altri oggetti. Collection dichiarazione di interfaccia operazione per ogni tipo di raccolta può essere eseguita.

Collezioni classi del framework e le interfacce sono nel pacchetto java.util.