Sobes.tech
Junior — Middle

Jaké způsoby implementace rozhraní Set jsou v Kotlinu dostupné a v čem se liší?

sobes.tech AI

Odpověď od AI

V Kotlinu je rozhraní Set implementováno několika způsoby, které se liší podle mutability a vnitřní implementace:

  • Set — je rozhraní pro neměnné množiny (pouze pro čtení). Poskytuje operace pro čtení, ale nikoliv pro změnu.
  • MutableSet — rozšiřuje Set a přidává metody pro změnu množiny (přidání, odstranění prvků).

Implementace:

  • HashSet — založen na hash tabulce, zajišťuje rychlý přístup a operace přidání/odstranění. Pořadí prvků není garantováno.
  • LinkedHashSet — dědí z HashSet, zachovává pořadí vložení prvků.
  • SortedSet / TreeSet (přes Java) — množina, jejíž prvky jsou seřazeny podle přirozeného řádu nebo podle komparátoru.

Příklad:

val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)

mutableSet.add(4) // povoleno
// readOnlySet.add(4) // chyba kompilace

Volba implementace závisí na požadavcích na mutabilitu a pořadí prvků.