TGViewer
Java Geek Java Geek @java_geek · 2.37K subscribers
Post #363 1.33K
🧩 Зачем в Java использовать EnumSet вместо Set<Enum>?

Сегодня я покажу вам один маленький трюк, который может ускорить вашу Java-программу в разы, если вы работаете с enum.

Когда вы создаёте коллекцию, содержащую перечисления, большинство пишет что-то вроде:


Set<Day> days = new HashSet<>();


Но в Java есть специализированная реализация — EnumSet, которая в десятки раз быстрее, потребляет меньше памяти и гарантирует отсутствие null.

Вот как это выглядит:


EnumSet<Day> days = EnumSet.of(Day.MONDAY, Day.WEDNESDAY);


💡 Почему EnumSet лучше:
- Под капотом реализован как битовая маска — супербыстро.
- Использует гораздо меньше памяти, чем обычный HashSet.
- Все значения в EnumSet должны быть одного enum-типа — меньше шансов ошибиться.
- null туда не добавить — меньше багов.

📌 Пример:

enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY
}

EnumSet<Day> workDays = EnumSet.range(Day.MONDAY, Day.FRIDAY);
System.out.println(workDays); // [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]


Если ты до сих пор не используешь EnumSet, советую обратить внимание. Особенно в перформанс-критичных задачах — это маленькая оптимизация, которая может дать большую разницу.

👉 @java_geek
  • 👍 10
More from @java_geek
  1. Sep 24, 2026Что такое стек-трейс? Стек-трейс (stack trace) представляет собой список вызовов методов в…
  2. Sep 17, 2026Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)? Д…
  3. Sep 15, 2026Array vs ArrayList Выбор между Array (стандартным Java-массивом) и ArrayList зависит от сп…
  4. Sep 11, 2026Какова цель ключевого слова final, когда оно используется с переменной? Ключевое слово fin…
  5. Sep 9, 2026☕ Java Tip: Как работает var в Java С версии Java 10 появился ключевое слово var. Оно упро…
  6. Sep 7, 2026Что такое перегрузка методов в Java? Перегрузка методов — это мощный приём, который позвол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →