Por que um EnumSet ou um EnumMap tem mais desempenho que seus equivalentes com hash?

O seguinte é doNota de implementação Seção deDocumento Java do EnumMap :

Nota de implementação: Todas as operações básicas são executadas em tempo constante. Eles são prováveis ​​(embora não garantidos) para serem mais rápidos do que seus equivalentes no HashMap.

Eu vi uma linha semelhante no documento java paraEnumSet Além disso . Eu quero saber porque é mais provável queEnumSets eEnumMaps será mais rápido que suas contrapartes com hash?