Нет встроенного способа сделать это, который я могу найти в EnumMap
(и я проверил исходный код, чтобы убедиться). Тем не менее, вот немного более быстрый метод:
public static <T extends Enum<T>> boolean areAllValuesMapped(EnumMap<T,?> map, Class<T> enumClass) {
return map.size() == enumClass.getEnumConstants().length;
}
Следует отметить, что EnumMap.keySet()
не возвращает EnumSet
; если это так, то вызов equals()
, который вы используете, будет простым сравнением longs
. Как таковой, он должен использовать итератор и последовательно проверять каждую константу перечисления.