map 和 ImmutableMap 的区别

Difference between map and ImmutableMap

我在支付网关公司工作,在分析我遇到的代码时 ImmuatbleMap 对象。我想知道有关的所有细节。它是什么? 它比地图有什么优势?核心 java 是否支持 ImmuatbleMap?

ImmutableMaps 是在 Guava 中引入的,它们符合 Java 的 Map API,但有额外的保证。

简而言之:

  • 您不能添加、替换或删除条目
    • 如果条目对象没有可变状态,它们是 "fully immutable"
    • 因此,它们是线程安全的
  • null禁止
  • 与通常的 Java 集合相比,
  • (稍微)节省时间和 space 效率
  • 迭代顺序是可预测的

有关完整信息,请参阅 Guava's guide and javadoc for ImmutableCollection,它适用于地图和其他 Guava 的不可变集合。