Google Guava 库中的 BiMap(双向映射)是一种特殊的映射类型,它维护了映射的反向视图,并确保不存在重复值,且始终可以安全地使用值获取对应的键。以下是关于 Guava BiMap 的一些介绍和用法:
1. 概述
BiMap(或称为“双向映射”)是一种特殊的映射类型,它允许通过键查找值,同时也可以通过值查找键。这意味着在 BiMap 中,不仅键是唯一的,值也必须是唯一的。BiMap 接口扩展了 Map 接口,并添加了一些方法来提供反向视图。
2. BiMap 的实现类
Guava 提供了几种 BiMap 的实现:
- HashBiMap:基于哈希表的双向映射实现。它提供了常数时间的
containsKey、get和put操作(假设哈希函数是完美的)。由于其基于哈希表,它不保证元素的顺序。 - EnumBiMap:一种特殊的
BiMap,它要求键和值都是枚举类型。这种实现类型安全和高效,适用于键和值都是已知枚举值的情况。 - ImmutableBiMap:不可修改的
BiMap,遵循构建器模式。
3. BiMap 的常用方法
除了继承自 Map 接口的方法外,BiMap 还添加了一些特有的方法:
- inverse():返回一个视图,其中的键和值与原
BiMap中的值和键相反。注意,返回的是视图,对返回映射的更改将反映在原映射上,反之亦然。 - forcePut(K key, V value):类似于
put方法,但如果键或值已经存在,则会抛出IllegalArgumentException。 - containsValue(Object value):检查
BiMap中是否包含指定的值。
4. BiMap 的用法示例
以下是一个简单的示例,展示如何使用 Guava 的 HashBiMap 实现 BiMap 接口,并演示了它的多种方法:

最低0.47元/天 解锁文章
396

被折叠的 条评论
为什么被折叠?



