РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
448 of 1163 menu

Класс EnumSet

Класс EnumSet - это специализированная коллекция из фреймворка Java Collections, предназначенная для хранения элементов одного типа перечисления (enum). Он наследуется от абстрактного класса AbstractSet и реализует интерфейс Set. В отличие от других реализаций Set, EnumSet не имеет публичных конструкторов. Для создания экземпляров используются статические фабричные методы, такие как of, allOf, noneOf и другие. В параметры методов создания передаются константы перечисления или сам класс перечисления. Внутри EnumSet хранится в виде битового вектора, что делает его чрезвычайно быстрым и компактным по сравнению с HashSet или TreeSet.

Синтаксис

EnumSet<EnumType> set = EnumSet.of(EnumType.CONSTANT1, EnumType.CONSTANT2);

Пример

Давайте создадим перечисление для дней недели и набор, содержащий только рабочие дни:

import java.util.EnumSet; import java.util.Set; public class Main { enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public static void main(String[] args) { Set<Day> workDays = EnumSet.of(Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY, Day.FRIDAY); System.out.println(workDays); } }

Результат выполнения кода:

[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]

Пример

Давайте создадим набор всех дней недели с помощью метода allOf и добавим в него выходной день:

import java.util.EnumSet; import java.util.Set; public class Main { enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public static void main(String[] args) { Set<Day> allDays = EnumSet.allOf(Day.class); System.out.println("All days: " + allDays); Set<Day> weekend = EnumSet.of(Day.SATURDAY, Day.SUNDAY); allDays.removeAll(weekend); System.out.println("Work days: " + allDays); } }

Результат выполнения кода:

All days: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY] Work days: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]

Пример

Давайте создадим пустой набор с помощью метода noneOf и проверим его размер:

import java.util.EnumSet; import java.util.Set; public class Main { enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public static void main(String[] args) { Set<Day> emptySet = EnumSet.noneOf(Day.class); System.out.println("Size: " + emptySet.size()); System.out.println("Is empty: " + emptySet.isEmpty()); emptySet.add(Day.MONDAY); System.out.println("After add: " + emptySet); } }

Результат выполнения кода:

Size: 0 Is empty: true After add: [MONDAY]

Смотрите также

  • класс Set,
    который представляет базовый интерфейс множеств
  • метод of,
    который создает неизменяемое множество
  • метод add,
    который добавляет элемент в множество
  • метод contains,
    который проверяет наличие элемента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить