Sobes.tech
Junior

Czym jest Set w Java?

sobes.tech AI

Odpowiedź od AI

Set w Javie to kolekcja unikalnych elementów, która nie gwarantuje kolejności przechowywania.

Główne cechy:

  • Unikalność: Nie może zawierać duplikatów. Jeśli spróbujesz dodać istniejący element, operacja zostanie zignorowana (w zależności od implementacji).
  • Brak indeksacji: Elementy nie są dostępne po indeksie.
  • Interfejs: Jest częścią Java Collections Framework i rozszerza interfejs Collection.

Najczęściej używane implementacje:

  • HashSet: Najszybsza implementacja, oparta na tablicy haszującej. Nie gwarantuje kolejności elementów.
  • LinkedHashSet: Zachowuje kolejność dodawania elementów, używając powiązanej listy oprócz tablicy haszującej.
  • TreeSet: Przechowuje elementy w posortowanej kolejności (naturalnej lub według zdefiniowanego komparatora), oparta na drzewie czerwono-czarnym.

Przykład użycia HashSet:

// Tworzenie HashSet
Set<String> unikalneNazwy = new HashSet<>();

// Dodawanie elementów
unikalneNazwy.add("Alice");
unikalneNazwy.add("Bob");
unikalneNazwy.add("Alice"); // Ten element zostanie zignorowany
unikalneNazwy.add("Charlie");

// Sprawdzanie, czy element istnieje
boolean zawieraBoba = unikalneNazwy.contains("Bob"); // true

// Iteracja po elementach (kolejność nie jest gwarantowana)
for (String imie : unikalneNazwy) {
    System.out.println(imie);
}

// Rozmiar zbioru
int rozmiar = unikalneNazwy.size(); // 3