Junior
Jakie kolekcje istnieją w Java?
sobes.tech AI
Odpowiedź od AI
W Javie istnieją następujące główne interfejsy kolekcji, które są częścią Java Collections Framework:
-
Collection: Podstawowy interfejs definiujący ogólne operacje na grupach obiektów. Od niego dziedziczą podinterfejsy:List: Kolekcja uporządkowana (sekwencja). Elementy mogą się powtarzać. Obsługuje dostęp po indeksie.ArrayList: Dynamiczna tablica. Dobra do szybkiego dostępu po indeksie i dodawania na końcu. Wolna przy wstawianiu/usuwaniu w środku.LinkedList: Lista dwukierunkowa. Dobra do wstawiania/usuwania na początku lub końcu. Wolna przy dostępie po indeksie.Vector: Synchronizowana wersjaArrayList. Uważana za przestarzałą.Stack: Dziedziczy zVector, implementuje zachowanie stosu (LIFO).
Set: Kolekcja zawierająca tylko unikalne elementy. Nie gwarantuje kolejności.HashSet: Implementowany za pomocą tablicy haszującej. Najszybszy do dodawania, usuwania i sprawdzania istnienia. Nie gwarantuje kolejności.LinkedHashSet: Implementowany jako tablica haszująca + lista powiązana. Gwarantuje kolejność wstawiania.TreeSet: Implementowany za pomocą drzewa czerwono-czarnego. Przechowuje elementy w posortowanej kolejności. Wolniejszy odHashSet, ale szybszy odLinkedHashSetprzy wyszukiwaniu zakresów.
Queue: Kolekcja zaprojektowana do przechowywania elementów przed przetwarzaniem (FIFO - First-In, First-Out).PriorityQueue: Elementy przechowywane zgodnie z ich naturalnym porządkiem lub komparatorem. Pobiera element o najwyższym priorytecie.Deque: (Double Ended Queue) Obsługuje wstawianie i usuwanie z obu końców.ArrayDeque: Implementacja Deque oparta na tablicy. Bardziej wydajna niżLinkedListjako kolejka/stos.
-
Map: Kolekcja przechowująca pary klucz-wartość. Klucze są unikalne.HashMap: Implementowana za pomocą tablicy haszującej. Najszybsza do dodawania, usuwania i sprawdzania istnienia. Nie gwarantuje kolejności kluczy.LinkedHashMap: Implementowana jako tablica haszująca + lista powiązana. Gwarantuje kolejność wstawiania lub dostępu.TreeMap: Implementowana za pomocą drzewa czerwono-czarnego. Przechowuje pary klucz-wartość w posortowanej kolejności według kluczy. Wolniejsza odHashMap.HashTable: Zsynchronizowana wersjaHashMap. Uważana za przestarzałą.
Istnieją również przestarzałe klasy, które nie są częścią JCF, ale czasami się je spotyka:
VectorStackHashtableEnumeration(interfejs)