码迷,mamicode.com
首页 > 其他好文 > 详细

Guava学习笔记:Multimaps

时间:2015-09-23 21:01:46      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

Guava学习笔记:Multimaps

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

Multimap的实现

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

实现 Key实现 Value实现
ArrayListMultimap HashMap ArrayList
HashMultimap HashMap HashSet
LinkedListMultimap LinkedHashMap LinkedList
LinkedHashMultimap LinkedHashMap LinkedHashSet
TreeMultimap TreeMap TreeSet
ImmutableListMultimap ImmutableMap ImmutableList
ImmutableSetMultimap ImmutableMap ImmutableSet

我们通过一个示例来了解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!)  
}  
}  

Guava学习笔记:Multimaps

标签:

原文地址:http://www.cnblogs.com/ngu113619/p/4833253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!