为了账号安全,请及时绑定邮箱和手机立即绑定

google guava的Multimaps:一键多值的Map

标签:
Java

有时候我们需要这样的数据类型Map<String,Collection<String>>,guava中的Multimap就是为了解决这类问题的。

Multimap的实现

Multimap提供了丰富的实现,所以你可以用它来替代程序里的Map<K, Collection<V>>,具体的实现如下:

实现Key实现Value实现
ArrayListMultimapHashMapArrayList
HashMultimapHashMapHashSet
LinkedListMultimapLinkedHashMapLinkedList
LinkedHashMultimapLinkedHashMapLinkedHashSet
TreeMultimapTreeMapTreeSet
ImmutableListMultimapImmutableMapImmutableList
ImmutableSetMultimapImmutableMapImmutableSet

我们通过一个示例来了解Multimap的使用方法:

public class MutliMapTest {  
    public static void main(String... args) {  
  Multimap<String, String> myMultimap = ArrayListMultimap.create();  
    
  // 添加键值对  myMultimap.put("Fruits", "Bannana");  //给Fruits元素添加另一个元素   myMultimap.put("Fruits", "Apple");  
  myMultimap.put("Fruits", "Pear");  
  myMultimap.put("Vegetables", "Carrot");  
    
  // 获得multimap的size  int size = myMultimap.size();  
  System.out.println(size);  // 4      
  // 获得Fruits对应的所有的值  Collection<string> fruits = myMultimap.get("Fruits");  
  System.out.println(fruits); // [Bannana, Apple, Pear]      
  Collection<string> vegetables = myMultimap.get("Vegetables");  
  System.out.println(vegetables); // [Carrot]      
  //遍历Mutlimap    for(String value : myMultimap.values()) {  
   System.out.println(value);  
  }  
    
  // Removing a single value    myMultimap.remove("Fruits","Pear");  
  System.out.println(myMultimap.get("Fruits")); // [Bannana, Pear]      
  // Remove all values for a key    myMultimap.removeAll("Fruits");  
  System.out.println(myMultimap.get("Fruits")); // [] (Empty Collection!)  }  }

原文链接:http://outofmemory.cn/java/guava/Collections/Multimaps

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消