Co to jest EnumSet w Javie?

EnumSet jest specjalnym zestawem zaprojektowanym do użycia z typami wyliczeniowymi (enum) w języku Java. Został wprowadzony w Java 5 i jest jedną z implementacji interfejsu Set specjalnie przystosowaną do efektywnego wykorzystania z typami wyliczeniowymi. EnumSet zapewnia bardzo szybką wydajność operacji zbiorowych, jak również minimalne zużycie pamięci, co sprawia, że jest idealnym wyborem do obsługi dużych zbiorów wyliczeniowych.

Przykład użycia EnumSet

Przyjrzymy się teraz kompletnemu przykładowi użycia EnumSet w Java, który będzie pokazywał, jak można efektywnie zarządzać zbiorami elementów wyliczeniowych.

import java.util.EnumSet;

// Definicja typu wyliczeniowego reprezentującego dni tygodnia
enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

public class EnumSetExample {
    public static void main(String[] args) {
        // Tworzenie EnumSet zawierającego wybrane dni tygodnia
        EnumSet<Day> workDays = EnumSet.range(Day.MONDAY, Day.FRIDAY);

        // Wyświetlenie dni roboczych
        System.out.println("Dni robocze:");
        for (Day day : workDays) {
            System.out.println(day);
        }

        // Dodanie weekendu do zbioru
        // EnumSet umożliwia szybkie operacje na zbiorach
        EnumSet<Day> allDays = EnumSet.copyOf(workDays);
        allDays.addAll(EnumSet.of(Day.SATURDAY, Day.SUNDAY));

        // Wyświetlenie wszystkich dni tygodnia
        System.out.println("\nWszystkie dni tygodnia:");
        for (Day day : allDays) {
            System.out.println(day);
        }
    }
}

Komentarze do kodu:

  • Linia import java.util.EnumSet; importuje klasę EnumSet potrzebną do pracy ze zbiorami wyliczeniowymi.
  • enum Day to definicja typu wyliczeniowego dla dni tygodnia.
  • W main tworzymy EnumSet<Day> workDays, gdzie za pomocą EnumSet.range(Day.MONDAY, Day.FRIDAY) tworzymy zbiór dni od poniedziałku do piątku.
  • Za pomocą pętli for each wyświetlamy dni robocze.
  • Następnie tworzymy kopię zbioru workDays i dodajemy do niego weekendy metodą addAll.
  • Ponownie wyświetlamy wszystkie dni tygodnia.

Podsumowanie

EnumSet to potężne narzędzie w języku Java, pozwalające na efektywne zarządzanie zbiorami danych typu enum. Dzięki swojej wydajności i specjalizacji, EnumSet jest idealnym wyborem dla operacji wymagających szybkich i efektywnych przetwarzań na zbiorach typów wyliczeniowych. Przykład pokazał, jak łatwo i intuicyjnie można manipulować dniami tygodnia przy użyciu tego zestawu.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego  aspektów.

Scroll to Top