Is there a corresponding immutable enumMap in guava?

brainydexter picture brainydexter · Jun 28, 2012 · Viewed 15k times · Source

I recently learnt about the benefits of EnumMap in Java and would like to replace the existing ImmutableMap<OccupancyType, BigDecimal> to EnumMap. However, I'd also like the immutable property offered by ImmutableMap.

  • Is there a variant, ImmutableEnumMap available in guava ?
  • In terms of storage which one (EnumMap vs ImmutableMap) performs better ?
  • I couldn't find a comparison of the two. I'd appreciate if someone can point me to a link or give some insights on the efficiency of the two data structures ?

Answer

Louis Wasserman picture Louis Wasserman · Jun 28, 2012

Guava contributor here.

Guava doesn't currently have an ImmutableEnumMap variant, but if it did, it would probably just be a wrapper around an EnumMap. (That said, slightly better immutable implementations are possible.)

EnumMap will perform better than the basic ImmutableMap, in any event; it's difficult or impossible to beat.

(I'll file an issue to investigate adding an ImmutableMap variant for enum key types, though.)


Update: Guava 14 adds Maps.immutableEnumMap().