Sobes.tech
Junior

Mik a Java Set interfész fő megvalósításai?

sobes.tech MI

Válasz az MI-től

A Java Set felület fő megvalósításai:

  • HashSet: Egy hash-táblát használ az elemek tárolására. Nem garantálja a sorrendet. Gyors hozzáférés O(1) átlagosan.
  • LinkedHashSet: Örökli a HashSet-től, de egy további összekapcsolt listát használ az elemek hozzáadási sorrendjének megjegyzésére. Az iteráció a hozzáadási sorrendben történik.
  • TreeSet: Rendezett sorrendben tárolja az elemeket egy piros-fekete fa segítségével. Követeli, hogy az elemek Comparable-ek legyenek vagy egy Comparator legyen megadva. A add, remove, contains műveletek O(log n) időben történnek.
  • EnumSet: Kifejezetten magas teljesítményű implementáció enum típusú elemekhez. Az elemeknek ugyanabból az enum típusból kell származniuk.

Íme egy rövid összehasonlító táblázat:

Implementáció Rendezett? Null megengedett? Tárolási alap Teljesítmény (átlagos eset)
HashSet Nem Igen Hash-tábla O(1)
LinkedHashSet Igen Igen Hash-tábla + összekapcsolt lista O(1)
TreeSet Igen (természetes vagy meghatározott) Nem Piros-fekete fa O(log n)
EnumSet Igen (deklarációs sorrend) Nem Biten vektorok (belső) Nagyon magas, hatékonyan O(1)