Muitimap的使用

Muitimap 就是一个 key 对应多个 value 的数据结构。看上去它很像 java.util.Map 的结构,但是 Muitimap 不是 Map,没有实现 Map 的接口。

 

Muitimap 接口的主要实现类有:

HashMultimap: key 放在 HashMap,而 value 放在 HashSet,即一个 key 对应的 value 不可重复

ArrayListMultimap: key 放在 HashMap,而 value 放在 ArrayList,即一个 key 对应的 value 有顺序可重复

LinkedHashMultimap: key 放在 LinkedHashMap,而 value 放在 LinkedHashSet,即一个 key 对应的 value 有顺序不可重复

TreeMultimap: key 放在 TreeMap,而 value 放在 TreeSet,即一个 key 对应的 value 有排列顺序

ImmutableListMultimap: 不可修改。key 放在 ImmutableMap,而value放在ImmutableList

ImmutableSetMultimap: 不可修改。key 放在 ImmutableMap,而value放在ImmutableSet

 

Multimap<String, String> multimap = ArrayListMultimap.create(); 
        for(int i=1; i<=13; i++){
            multimap.put("key"+(i%5), "value"+i);
        }
        System.out.println("multimap size :" + multimap.size());  //集合元素的总数量,不是不重复键的数量
        
        multimap.put("key0", "newvalue"); //为key添加value
        multimap.remove("key0", "value5"); //删除key的某个value
        
        System.out.println("#####");
        for(String key : multimap.keySet()){ //得到不重复键的数目,并递归获取对应的值集合
            System.out.println(key + ":"+multimap.get(key)); //显示每个key的值集合。就算key不存在,值集合一定也是非null的集合
        }
        
        //System.out.println(scoreMultimap.asMap().get("dd"));  //key不存在时返回null

 

执行结果如下:

multimap size :13

#####

key4:[value4, value9]

key3:[value3, value8, value13]

key0:[value10, newvalue]

key2:[value2, value7, value12]

key1:[value1, value6, value11]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值