在前面的《Guava学习之Multimap》文章中我们谈到了Guava类库中的Multimap,其特点是存在在Multimap中的键值对可以不唯一;而我们又知道,在Java集合类库中有个Map,它的特点是存放的键(Key)是唯一的,而值(Value)可以不唯一,如果我们需要键(Key)和值(Value)都唯一,该怎么实现?这就是今天要谈的BiMap结构。
在过去,如果需要将Map结构中的键值对反转(也就是key->value转变成value->key),这时候我们需要定义两个Map数据结构来存储。但,如果Map中存在多个value相同的元素会发生什么情况呢?这时候添加进去的key将会覆盖先前加进去的key。如下所示:
Guava学习之BiMap
最新推荐文章于 2023-11-02 20:20:00 发布
本文介绍了Guava的BiMap结构,它是一个键值对都唯一的Map实现,解决了传统Map中键唯一但值可能不唯一的问题。在BiMap中,尝试添加已存在的键值对会导致IllegalArgumentException。BiMap提供了forcePut方法添加已有值,并可通过inverse方法反转键值对,返回的反转映射是原BiMap的视图。常见的BiMap实现包括HashBiMap、EnumBiMap和ImmutableBiMap。
摘要由CSDN通过智能技术生成