我的问题很简单。什么是SingletonImmutableBiMap
距离guava
,为什么它包含关键字喜欢singleton
和bi
?
很清楚 anImmutableMap
是什么意思,但其他两个关键字的目的是什么?
我们什么时候使用这个实现?我通过调用注意到这个类
.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。
我们什么时候使用这个实现?
永远不会,因为它不是公开的。它的存在是一个内部细节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句