java - Guava 中是否有对应的不可变枚举映射?

标签 java immutability guava enum-map

我最近了解了 EnumMap 在 Java 中的好处,并想替换现有的 ImmutableMap<OccupancyType, BigDecimal>到枚举映射。不过,我也喜欢 ImmutableMap 提供的不可变属性。

  • guava 中是否有变体 ImmutableEnumMap 可用?
  • 在存储方面,哪个(EnumMap 与 ImmutableMap)性能更好?
  • 我找不到两者的比较。如果有人能指出一个链接或就这两种数据结构的效率提供一些见解,我将不胜感激?

最佳答案

Guava 贡献者在这里。

Guava 目前没有 ImmutableEnumMap 变体,但如果有,它可能只是 EnumMap 的包装器。 (也就是说,更好的不可变实现是可能的。)

在任何情况下,

EnumMap 都会比基本的 ImmutableMap 执行得更好;很难或不可能击败。

(不过,我将 file an issue 研究为枚举键类型添加 ImmutableMap 变体。)


更新:Guava 14 添加了 Maps.immutableEnumMap() .

关于java - Guava 中是否有对应的不可变枚举映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11244402/

相关文章:

在 C++ 中具有自定义值和构造函数的 Java 类型枚举

java - 从 JSF 1.2 迁移到 JSF 2.0

java - JLayer 和 JPanel 的绘画问题

c# - 试图创建不可变类 - 私有(private)集被忽略

java - Guava LoadingCache 每次都为同一个键加载新值

java - Logger 和 System.out.println 的输出不按顺序

Java 不可变集合

java - Is Class<T> immutable in Java,也就是 Class<T> 是 HashMap 的安全键吗?

java - 如何通过使用谷歌集合提供 List<X> 从 Map<X,Y> 获取 List<Y>?

java - 最小值并发映射