java-collection: Rozdiel medzi revíziami

Z bur.sk
Skočit na navigaci Skočit na vyhledávání
(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…“)
 
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 ==

Verzia zo dňa a času 16:45, 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.


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

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).