2012-12-05 41 views
-3

我有以下地图..关于地图的不同实现

Map<String, Collection<Integer>> multiValueMap = new HashMap<String, Collection<Integer>>(); 
     multiValueMap.put("a", new ArrayList<Integer>()); 
     multiValueMap.get("a").add(new Integer(10)); 
     multiValueMap.get("a").add(new Integer(20)); 
     multiValueMap.get("a").add(new Integer(30)); 

     System.out.println("There are "+multiValueMap.size()+" elements in the map."); 
     System.out.println("Content of multiValueMap are..."); 
     Set s=multiValueMap.entrySet(); 
     Iterator itr=s.iterator(); 
     while(itr.hasNext()) 
     { 
      Map.Entry m=(Map.Entry)itr.next(); 
      System.out.println(m.getKey()+"\t"+m.getValue()+"\t"+ m.hashCode()); 
      } 

和这是输出..

There are 1 elements in the map. 
Content of multiValueMap are... 
a [10, 20, 30] 39954 

请告知可同样的事情通过番石榴Multimap之实现还,如果再请建议.. !!

+2

您是否有真正的问题? – 2012-12-05 14:15:48

回答

1
Multimap<String, Integer> multimap = ArrayListMultimap.create(); 
multimap.putAll("a", ImmutableList.of(10, 20, 30)); 
System.out.println("There are " + multimap.keySet().size() + 
    " elements in the map."); 
System.out.println("Content of multimap are..."); 
for (Map.Entry<String, Collection<Integer>> asMapEntry : 
    multimap.asMap().entrySet()) { 
    System.out.printf("%s\t%s\t%s%n", asMapEntry.getKey(), asMapEntry.getValue(), 
     asMapEntry.hashCode()); 
}