ITPub博客

首页 > IT职业 > IT职场 > google guava的Multimaps:一键多值的Map

google guava的Multimaps:一键多值的Map

IT职场 作者:xu_xufei 时间:2021-09-09 09:39:18 0 删除 编辑

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

Multimap的实现

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

实现 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 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 fruits = myMultimap.get("Fruits");  
  System.out.println(fruits); // [Bannana, Apple, Pear]      
  Collection 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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4684/viewspace-2805661/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-30

  • 博文量
    94
  • 访问量
    852