我的问题很简单。什么是 guava
中的 SingletonImmutableBiMap
以及为什么它包含 singleton
和 bi
等关键字?
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/