Latest web development tutorials

Java Collections Framework

Na długo zanim w Java 2, Java zapewnia kategorię ad hoc. Na przykład: Klasy Dictionary, wektorowe, stosu i właściwości wykorzystywane do przechowywania i przetwarzania grup obiektów.

Mimo, że te zajęcia są bardzo przydatne, ale brakuje im centralne, jednoczący temat. Z tego powodu, należy użyć klasy Vector sposób i za pomocą klasy Properties ma bardzo różny sposób.

Kolekcje ramowy powinien spełniać następujące cele.

  • Ramy muszą być wysokiej jakości. Zestaw podstawowy (tablice dynamiczne, związane listy, drzewa, tablice hash) realizacja musi być skuteczny.
  • Ramy umożliwia różne rodzaje zbiorów, w podobny sposób, z wysoką współdziałania.
  • Rozbudowa i adaptacja kolekcji muszą być proste.

W tym celu cała ramy kolekcja jest zaprojektowana wokół zestawu standardowych interfejsów. Możesz użyć tych standardowych interfejsów do osiągnięcia, takie jak: LinkedList, HashSet, TreeSet i tym podobne, a ponadto można też zaimplementować własną kolekcję przez te interfejsy.

Kolekcje ramy jest zunifikowana architektura używany do reprezentowania i manipulować kolekcji. Wszystkie kolekcje ramy zawiera następujące elementy:

  • Interfejs: Jest to abstrakcyjny typ danych reprezentuje kolekcję. Interfejs pozwala na niezależne manipulowanie szczegółach zbiórki swoich przedstawicieli. W językach obiektowych, interfejsy ogół tworzą hierarchię.
  • Wdrożenie (klasa): jest realizacja zbiór interfejsów. Zasadniczo są struktury danych wielokrotnego użytku.
  • Algorytm: kilka przydatnych obliczeniowa obiekt, który implementuje interfejs w sposobie przeprowadzania zbiórki, na przykład: wyszukiwanie i sortowanie. Algorytmy te są nazywane multi-stan, to dlatego, że sama metoda może mieć różne implementacje na podobnym interfejsem.

Oprócz kolekcji ramy określa także kilka interfejsów Mapa i klas. Mapa jest przechowywana w par klucz / wartość. Pomimo Mapka kolekcji, ale są w pełni zintegrowane z kolekcji.


Interfejsy Collection

Ramy Collection definiuje szereg interfejsów. Ta sekcja zawiera przegląd każdego interfejsu:

Nie. Opis interfejsu
1 Interfejs Collection pozwala na użycie grupę obiektów, jest hierarchia interfejs zbierania korzeni.
2 Elementy interfejsu Lista odziedziczone Collection oraz instancję Lista przechowywać uporządkowaną kolekcję.
3 Ustaw
Dziedziczony z Collection, jest to kolekcja, która nie zawiera zduplikowane elementy.
4 SortedSet
Ustaw w uporządkowany rzędu zapisać zestaw.
5 mapa
Jedynymi mapy klucze do wartości.
6 Map.Entry
Element Opis (pary kluczy / wartość) na mapie. Mapa jest wewnętrzną klasy.
7 SortedMap
Dziedziczony z mapą, więc Key odbyła w porządku rosnącym.
8 wyliczenie
Jest to tradycyjna definicja interfejsów i metod, dzięki którym można wyliczyć (raz uzyskano a) obiektów w elementach kolekcji. Ta tradycja została zastąpiona przez iterator interfejsu.

Kolekcje

Java zapewnia zestaw standardowych klasy implementuje interfejs Collection. Niektóre z nich są specyficzne klasy, które mogą z niego korzystać, a inni są klasy abstrakcyjne, zapewnia częściową implementację interfejsu.

Standardowe klas kolekcji są zestawione w poniższej tabeli:

Nie. Klasa Opis
1 AbstractCollection
Aby osiągnąć większość interfejsów zbiórki.
2 AbstractList
Dziedziczenie w AbstractCollection i osiągnął większość interfejsu List.
3 AbstractSequentialList
Odziedziczone AbstractList, zapewnia dostęp do elementów danych w łańcuchu zamiast losowego dostępu.
4 LinkedList
Odziedziczone AbstractSequentialList, realizuje połączonej listy.
5 ArrayList
Poprzez dziedziczenie AbstractList, dynamicznych tablic.
6 AbstractSet
Dziedziczenie w AbstractCollection i osiągnął większość tego interfejsu.
7 HashSet
Odziedziczył AbstractSet i użyć tabeli mieszania.
8 LinkedHashSet
Z przewidywalny celu iteracji i połączonej listy hash table set interface.
9 TreeSet
Odziedziczone AbstractSet, z wykorzystaniem elementów naturalnego porządku elementów w porządku.
10 AbstractMap
Aby osiągnąć większość interfejsu mapy.
11 HashMap
HashMap jest tabeli mieszania, który przechowuje zawartość par klucz-wartość (klucz-wartość) mapowania.
HashMap dziedziczone AbstractMap, zrealizowane interfejs Mapa, Cloneable, java.io.Serializable.
12 TreeMap
Odziedziczył AbstractMap i zastosowanie drzewa.
13 WeakHashMap
Dziedziczone klasy AbstractMap użyć tabeli mieszania słabych kluczy.
14 LinkedHashMap
Odziedziczone HashMap, wykorzystując elementy naturalnego porządku elementów, które mają być sortowane.
15 IdentityHashMap
AbstractMap klasy dziedziczenie, wykorzystując numer referencyjny równości przy porównywaniu dokumentów.

W poprzednim poradniku że zostały omówione przez klasy java.util określonych w opakowaniu, w następujący sposób:

Nie. Klasa Opis
1 wektor
Klasa Vector wdraża dynamicznej tablicy. I ArrayList i podobne, ale dwa są różne.
2 stos
Stack jest podklasą Vector, która implementuje standardowy LIFO stos.
3 słownik
Słownik klasa jest klasą abstrakcyjną, która jest używana do przechowywania pary klucz / wartość, podobne do działania klasy i mapa.
4 Hashtable
Hashtable jest częścią oryginalnego java.util jest słownik wdrożenie betonu.
5 właściwości
Właściwości dziedziczy z Hashtable. Reprezentuje trwały zestaw właściwości. Każdy klucz i odpowiadająca jej wartość w wykazie nieruchomości jest ciągiem.
6 BitSet
Klasa Bitset tworzy specjalny rodzaj tablicy do przechowywania wartości bitów. BitSet do rozmiaru tablicy musi wzrosnąć.

Klasa Bitset tworzy specjalny rodzaj tablicy do przechowywania wartości bitów. BitSet do rozmiaru tablicy musi wzrosnąć.


algorytm Collection

Kolekcje ramowa określa kilka algorytmów mogą być wykorzystywane do zbierania i mapowania. Algorytmy te są statyczne metody z tej klasy jest zdefiniowany jako zbiór.

Gdy próbuje porównać niezgodne typy, niektóre metody mogą rzucać ClassCastException. Podczas próby zmodyfikowania niemodyfikowalne zestaw wyjątek UnsupportedOperationException.

Kolekcja definiuje trzy zmienne statyczne: EMPTY_SET EMPTY_LIST, EMPTY_MAP się. Zmienne te są niezmienne.

Nie. algorytm Opis
1 Kolekcja Algorytmy
Tutaj znajduje się lista wszystkich algorytmów.

Jak korzystać z iterator

Zazwyczaj będziemy chcieli przechodzić zbiór elementów. Na przykład, wyświetlany jest każdy element kolekcji.

Zrób to najprostszym sposobem jest użycie iterator, jest to obiekt, który implementuje interfejs Iterator lub interfejs ListIterator.

Iteratory, dzięki czemu można usunąć element, aby uzyskać lub ustawić w trybie obiegowym. ListIterator dziedziczone Iterator, co umożliwia dwukierunkową przemierzać listy i modyfikować elementy.

Wszystkie metody i interfejs listIterator Iterator Nie wymieniono tytułem przykładu.

Jak użyciu komparatora

TreeSet i TreeMap kolejność sortowania według elementu magazynującego. Jest to jednak, porównując urządzenie do ściśle określonych warunkach z co porządku sortowania.

Interfejs ten pozwala nam na różne sposoby, aby posortować zbiór.

Nie. Porównanie metod opisanych
1 Korzystanie Java Komparator
Komparator dostarcza interfejs wszystkie sposoby opisane tu dla przykładu

streszczenie

Java Collections Framework zapewnia programista z paczkowanych struktur danych i algorytmów, aby nimi manipulować.

Zbiór jest obiektem, który może zawierać odnośniki do innych obiektów. Zgłoszenie interfejs operacji zbierania dla każdego rodzaju odbioru może zostać wykonane.

Kolekcje klas ramowe i interfejsy są w pakiecie java.util.