Sobes.tech
Junior

Aké sú hlavné implementácie rozhrania Set v Jave?

sobes.tech AI

Odpoveď od AI

Hlavné implementácie rozhrania Set v Jave:

  • HashSet: Používa hash tabuľku na ukladanie prvkov. Nezaručuje poradie prvkov. Rýchly prístup O(1) v priemere.
  • LinkedHashSet: Dedí od HashSet, ale používa ďalší prepojený zoznam na zapamätanie poradia pridania prvkov. Iterácia prebieha v poradí pridania.
  • TreeSet: Ukladá prvky v zoradenom poradí pomocou červeno-čierneho stromu. Vyžaduje, aby prvky boli Comparable alebo aby bol poskytnutý Comparator. Operácie add, remove, contains sa vykonávajú v čase O(log n).
  • EnumSet: Špecializovaná vysokovýkonná implementácia na použitie s výčtami (enum). Prvky musia byť rovnakého typu výčtu.

Tu je krátka porovnávacia tabuľka:

Implementácia Zoradí? Povolené null? Základné uloženie Výkon (priemerný prípad)
HashSet Nie Áno Hash tabuľka O(1)
LinkedHashSet Áno Áno Hash tabuľka + prepojený zoznam O(1)
TreeSet Áno (prirodzené alebo definované) Nie Červeno-čierne strom O(log n)
EnumSet Áno (poradie deklarácie) Nie Vektory bitov (vnútorné) Veľmi vysoké, efektívne O(1)