| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Overview of EnumSet API.
Reference: https://docs.oracle.com/javase/10/docs/api/java/util/EnumSet.html
EnumSet is specialized Set implementation for use with enum types.
Enum sets are represented internally as bit vectors. This representation is extremely compact and efficient. The space and time performance of this class should be good enough to allow its use as a high-quality, typesafe alternative to traditional int-based "bit flags." (for bit flags please refer my other github project: https://github.com/mtumilowicz/java11-ORed-container)
Even bulk operations (such as containsAll and retainAll) should run very quickly if their argument is also an enum set.
The returned iterator (from iterator()) is weakly consistent (for iterator types please refer my other github project: https://github.com/mtumilowicz/java-iterator-fail-types).
Null elements are not permitted (NPE).
Assumption: <E extends Enum<E>>
All basic operations execute in constant time. They are likely (though not guaranteed) to be much faster than their HashSet counterparts. Even bulk operations execute in constant time if their argument is also an enum set.
Please note that from static methods we obtain mutable set.
We provide tests for static methods:
EnumSet<DayOfWeek> dayOfWeeks = EnumSet.allOf(DayOfWeek.class);
assertThat(dayOfWeeks.size(), is(7));
assertThat(dayOfWeeks, contains(
DayOfWeek.MONDAY,
DayOfWeek.TUESDAY,
DayOfWeek.WEDNESDAY,
DayOfWeek.THURSDAY,
DayOfWeek.FRIDAY,
DayOfWeek.SATURDAY,
DayOfWeek.SUNDAY)
);
EnumSet<DayOfWeek> withoutWeekendDays = EnumSet.complementOf(
EnumSet.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY)
);
assertThat(withoutWeekendDays.size(), is(5));
assertThat(withoutWeekendDays, contains(
DayOfWeek.MONDAY,
DayOfWeek.TUESDAY,
DayOfWeek.WEDNESDAY,
DayOfWeek.THURSDAY,
DayOfWeek.FRIDAY)
);
EnumSet<DayOfWeek> workingDays = EnumSet.range(DayOfWeek.MONDAY, DayOfWeek.FRIDAY);
assertThat(workingDays.size(), is(5));
assertThat(workingDays, contains(
DayOfWeek.MONDAY,
DayOfWeek.TUESDAY,
DayOfWeek.WEDNESDAY,
DayOfWeek.THURSDAY,
DayOfWeek.FRIDAY)
);
EnumSet<DayOfWeek> emptyDays = EnumSet.noneOf(DayOfWeek.class); assertTrue(emptyDays.isEmpty()); emptyDays.add(DayOfWeek.SATURDAY); assertThat(emptyDays, contains(DayOfWeek.SATURDAY));
| Back | FazBrowse Home | New Git URL |