`
raymond.chen
  • 浏览: 1436827 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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]

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics