java-collection: Rozdiel medzi revíziami
(Vytvorená stránka „{{DISPLAYTITLE:Kolekcie a mapy (Java)}} '''Collection<E>''' je skupina objektov typu ''E''. Zvyčajne používame niektorú z podtried: * '''Set<E>''' je množina obje…“) |
(→Queue) |
||
| (Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.) | |||
| Riadok 15: | Riadok 15: | ||
== Set == | == Set == | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Trieda | ||
| + | ! Dovoľuje null | ||
| + | ! Thread-safe | ||
| + | ! Ďalšie rozhrania | ||
| + | |- | ||
| + | | EnumSet || nie || nie || | ||
| + | |- | ||
| + | | HashSet || áno || nie || | ||
| + | |- | ||
| + | | LinkedHashSet || áno || nie || | ||
| + | |- | ||
| + | | TreeSet || || nie || SortedSet, NavigableSet | ||
| + | |- | ||
| + | | ConcurrentSkipListSet || nie || áno || SortedSet, NavigableSet | ||
| + | |- | ||
| + | | CopyOnWriteArraySet || áno || áno || | ||
| + | |} | ||
| + | |||
| + | Všetky uvedené množiny implementujú aj rozhrania ''Set<E>'', ''Collection<E>'', ''Iterable<E>'' a ''Serializable''. Všetky okrem ''CopyOnWriteArraySet'' implementujú aj ''Cloneable''. | ||
== List == | == List == | ||
| Riadok 38: | Riadok 59: | ||
== Queue == | == Queue == | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Trieda | ||
| + | ! Veľkosť | ||
| + | ! Thread-safe | ||
| + | ! Ďalšie rozhrania | ||
| + | |- | ||
| + | | ArrayBlockingQueue || pevná || áno || BlockingQueue | ||
| + | |- | ||
| + | | ArrayDeque || || nie || Deque | ||
| + | |- | ||
| + | | ConcurrentLinkedDeque || || áno || Deque | ||
| + | |- | ||
| + | | ConcurrentLinkedQueue || || áno || | ||
| + | |- | ||
| + | | DelayQueue || neobmedzená || áno || BlockingQueue | ||
| + | |- | ||
| + | | LinkedBlockingDeque || pevná / neobmedzená || áno || BlockingQueue, Deque, BlockingDeque | ||
| + | |- | ||
| + | | LinkedBlockingQueue || pevná / neobmedzená || áno || BlockingQueue | ||
| + | |- | ||
| + | | LinkedList || || nie || Deque | ||
| + | |- | ||
| + | | LinkedTransferQueue || || áno || BlockingQueue, TransferQueue | ||
| + | |- | ||
| + | | PriorityBlockingQueue || || áno || BlockingQueue | ||
| + | |- | ||
| + | | PriorityQueue || || nie || | ||
| + | |- | ||
| + | | SynchronousQueue || nula || áno || BlockingQueue | ||
| + | |} | ||
| + | |||
| + | Všetky uvedené fronty implementujú aj rozhrania ''Queue<E>'', ''Collection<E>'' a ''Iterable<E>''. Všetky okrem ''DelayQueue'' implementujú aj ''Serializable''. | ||
== Map == | == Map == | ||
Aktuálna revízia z 16:57, 30. júl 2019
Collection<E> je skupina objektov typu E. Zvyčajne používame niektorú z podtried:
- Set<E> je množina objektov. Nie je definované poradie prvkov, a jeden objekt sa v danej množine môže nachádzať nanajvýš jedenkrát.
- List<E> je zoznam objektov. Predmety sú v zozname v danom poradí, očíslované od nuly.
- Queue<E> je fronta objektov. Objekty z nej môžeme vyberať v danom poradí (zvyčajne v poradí, v akom sme ich vložili).
Map<K, V> je mapa objektov. (Nazýva sa aj "slovník" alebo "asociatívne pole".) K jednému kľúču typu K môže byť priradená jedna hodnota typu V.
Obsah
Collection
Set
| Trieda | Dovoľuje null | Thread-safe | Ďalšie rozhrania |
|---|---|---|---|
| EnumSet | nie | nie | |
| HashSet | áno | nie | |
| LinkedHashSet | áno | nie | |
| TreeSet | nie | SortedSet, NavigableSet | |
| ConcurrentSkipListSet | nie | áno | SortedSet, NavigableSet |
| CopyOnWriteArraySet | áno | áno |
Všetky uvedené množiny implementujú aj rozhrania Set<E>, Collection<E>, Iterable<E> a Serializable. Všetky okrem CopyOnWriteArraySet implementujú aj Cloneable.
List
| Trieda | Dovoľuje null | Thread-safe | Ďalšie rozhrania |
|---|---|---|---|
| ArrayList | áno | nie | RandomAccess |
| LinkedList | áno | nie | Queue, Deque |
| CopyOnWriteArrayList | áno | áno | RandomAccess |
Všetky uvedené zoznamy implementujú aj rozhrania List<E>, Collection<E>, Iterable<E>, Serializable a Cloneable.
Zastarané triedy Vector<E> a Stack<E> tiež implementujú rozhranie List<E>, a správajú sa ako thread-safe verzia triedy ArrayList<E>. Namiesto Vector<E> použite ArrayList<E> (prípadne obalené v "Collections.synchronizedList"). Namiesto Stack<E> použite niektorú implementáciu Deque<E>, napríklad ArrayDeque<E>.
Queue
| Trieda | Veľkosť | Thread-safe | Ďalšie rozhrania |
|---|---|---|---|
| ArrayBlockingQueue | pevná | áno | BlockingQueue |
| ArrayDeque | nie | Deque | |
| ConcurrentLinkedDeque | áno | Deque | |
| ConcurrentLinkedQueue | áno | ||
| DelayQueue | neobmedzená | áno | BlockingQueue |
| LinkedBlockingDeque | pevná / neobmedzená | áno | BlockingQueue, Deque, BlockingDeque |
| LinkedBlockingQueue | pevná / neobmedzená | áno | BlockingQueue |
| LinkedList | nie | Deque | |
| LinkedTransferQueue | áno | BlockingQueue, TransferQueue | |
| PriorityBlockingQueue | áno | BlockingQueue | |
| PriorityQueue | nie | ||
| SynchronousQueue | nula | áno | BlockingQueue |
Všetky uvedené fronty implementujú aj rozhrania Queue<E>, Collection<E> a Iterable<E>. Všetky okrem DelayQueue implementujú aj Serializable.
Map
| Trieda | Dovoľuje null | Thread-safe | Ďalšie rozhrania |
|---|---|---|---|
| EnumMap | iba V | nie | |
| HashMap | nie | ||
| LinkedHashMap | nie | ||
| IdentityHashMap | áno | nie | |
| WeakHashMap | áno | nie | |
| ConcurrentHashMap | áno | ConcurrentMap | |
| ConcurrentSkipListMap | áno | SortedMap, NavigableMap, ConcurrentMap, ConcurrentNavigableMap | |
| TreeMap | nie | SortedMap, NavigableMap |
Všetky uvedené mapy implementujú aj rozhranie Map<E>. Väčšina z nich implementuje aj Serializable (okrem WeakHashMap) a Cloneable (okrem WeakHashMap a ConcurrentHashMap).