我有以下地图..
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实现,如果那时请告知.. !!
答案 0 :(得分: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());
}
答案 1 :(得分:0)
要获取MultiMap
中键的数量,可以使用Multimap.keySet().size()
你也可以迭代这个集合并使用Multimap.get(key)
获取附加到此键的所有值的集合。