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

Класс EnumMap

Класс EnumMap - это специализированная реализация интерфейса Map, предназначенная для работы с ключами типа enum. Все ключи в такой карте должны принадлежать одному и тому же перечислению, которое задаётся при создании карты. В отличие от HashMap, класс EnumMap хранит элементы во внутреннем массиве, индексируемом порядковым номером константы перечисления. Благодаря этому операции добавления, поиска и удаления выполняются очень быстро и предсказуемо. При обходе карты элементы возвращаются в естественном порядке объявления констант перечисления. В конструктор карты мы передаём объект Class перечисления, а при необходимости - другую карту того же типа для копирования её содержимого.

Синтаксис

EnumMap<EnumType, ValueType> map = new EnumMap<>(EnumType.class); EnumMap<EnumType, ValueType> map = new EnumMap<>(otherMap);

Пример

Давайте создадим карту EnumMap для перечисления дней недели и заполним её значениями:

import java.util.EnumMap; public class Main { enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY } public static void main(String[] args) { EnumMap<Day, String> map = new EnumMap<>(Day.class); map.put(Day.MONDAY, "a"); map.put(Day.TUESDAY, "b"); map.put(Day.WEDNESDAY, "c"); System.out.println(map); } }

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

{MONDAY=a, TUESDAY=b, WEDNESDAY=c}

Пример

Давайте получим значение по ключу и проверим наличие ключа в карте:

import java.util.EnumMap; public class Main { enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY } public static void main(String[] args) { EnumMap<Day, String> map = new EnumMap<>(Day.class); map.put(Day.MONDAY, "abcde"); map.put(Day.TUESDAY, "12345"); System.out.println(map.get(Day.MONDAY)); System.out.println(map.containsKey(Day.WEDNESDAY)); } }

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

"abcde" false

Пример

Давайте создадим одну карту на основе другой и посмотрим, в каком порядке обхода возвращаются элементы:

import java.util.EnumMap; public class Main { enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY } public static void main(String[] args) { EnumMap<Day, String> map = new EnumMap<>(Day.class); map.put(Day.FRIDAY, "e"); map.put(Day.MONDAY, "a"); map.put(Day.WEDNESDAY, "c"); EnumMap<Day, String> res = new EnumMap<>(map); System.out.println(res); System.out.println(res.size()); } }

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

{MONDAY=a, WEDNESDAY=c, FRIDAY=e} 3

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

  • интерфейс Map,
    который описывает базовый контракт всех карт
  • класс LinkedHashMap,
    который сохраняет порядок добавления элементов
  • класс WeakHashMap,
    который хранит ключи по слабым ссылкам
  • класс IdentityHashMap,
    который сравнивает ключи по ссылке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить