[Google Guava]学习--新集合类型 Muiltset,MultiMap,BiMap

Google Guava 的 com.google.common.collect 包提供了 Multiset、MultiMap 和 BiMap 这些增强型集合类型。Multiset 允许存储重复元素,MultiMap 支持一个键对应多个值,BiMap 是一种双向映射的数据结构。本文介绍了这些类型的主要特性和使用方法,以及它们与传统集合的区别。
摘要由CSDN通过智能技术生成

在sun的API中,map是不支持直接存放相同的key的,相同key会被后一个key替代的,但是我们可以通过一些工具包实现这样的功能 ——> Google基于java1.6的类库集合的扩展项目–Guava,其中com.google.common.collect包就支持这样的操作

 

MultiMap

场景:当需要实现Map<K, List<V>>或Map<K, Set<V>>数据结构时,代码会编写的很麻烦。

Multimap 提供了一个方便地把一个键对应到多个值的数据结构。

我们可以这样理解Multimap:”键-单个值映射”的集合(例如:a -> 1 a -> 2 a ->4 b -> 3 c -> 5)

特点:不会有任何键映射到空集合:一个键要么至少到一个值,要么根本就不在Multimap中。

主要方法介绍:

  • put(K, V):添加键到单个值的映射

  • putAll(K, Iterable<V>):依次添加键到多个值的映射

  • remove(K, V):移除键到值的映射;如果有这样的键值并成功移除,返回true

  • removeAll(K):清除键对应的所有值,返回的集合包含所有之前映射到K的值,但修改这个集合就不会影响Multimap了

  • replaceValues(K, Iterable<V>):清除键对应的所有值,并重新把key关联到Iterable中的每个元素。返回的集合包含所有之前映射到K的值

Multimap支持若干强大的视图

  • asMap为Multimap<K, V>提供Map<K,Collection<V>>形式的视图。返回的Map支持remove操作,并且会反映到底层的 Multimap,但它不支持put或putAll操作。更重要的是,如果你想为Mult
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值