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
tworzymyEnumSet<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.