java - 什么是 Guava 的 SingletonImmutableBiMap

标签 java guava

我的问题很简单。什么是 guava 中的 SingletonImmutableBiMap 以及为什么它包含 singletonbi 等关键字?

ImmutableMap 的含义非常清楚,但其他两个关键字的用途是什么?

我们什么时候应该使用这个实现?我通过调用注意到这个类

.stream().collect(ImmutableMap.toImmutableMap(ConfigItem::getId, Function.identity()))

最佳答案

Singleton:仅包含 1 个元素。对于不可变集合,它们的大小不会改变,因此您可以为空、单元素或其他小型集合单独实现。它很有用,因为它们比一般实现需要更少的内存并且执行速度更快。例如。对于 EmptyMap contains 方法可以只是 return false 而不是复杂的哈希表查找逻辑。

Bi:双向,即可以按值获取键,也可以按键获取值。请参阅https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/BiMap.html .

When shall we use this implementation?

永远不会,因为它不是公开的。它的存在是一个内部细节。

关于java - 什么是 Guava 的 SingletonImmutableBiMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43493199/

相关文章:

java - 使用 lwjgl 进行基本 openGL 3.2 设置 - 对象未渲染

java - 域名最大长度

java - Guava.Objects.hashCode 与 Java.Objects.hashCode

java - 使用 Guava 的 Tables.toTable

java - 使用处理程序在 eclipse 4.x 中打开 eclipse 3.x View

java - 查找元音始终位于末尾的 Anagrams

Java Scanner,模式以及useDelimiter()和skip()之间的区别

Java UIManager 行为

java - Guava 的 HashBasedTable cellSet()

java - 为什么 guava joiner 实现一个私有(private)方法 iterable(final Objectfirst,finalObject第二,finalObject[]rest)?