brainydexter brainydexter - 5 months ago 93
Java Question

Is there a corresponding immutable enumMap in guava?

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

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().