tgoop.com/java_geek/363
Create:
Last Update:
Last Update:
🧩 Зачем в 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
BY Java Geek
Share with your friend now:
tgoop.com/java_geek/363
