操作复杂的hashmap

时间:2012-04-18 16:07:18

标签: java data-structures hashmap

我正在尝试实现一个看起来像

的复杂数据结构
Map<A,Set<B>> map = new HashMap<A,Set<B>>();

但我不确定如何向此数据结构添加内容。我正在尝试做一个

map.put(a,b);

但这并没有帮助,因为它需要一套。我需要实现此数据结构的要求。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您需要在哈希映射中包含的集合中add您的元素:

if (!map.containsKey(a)) {
    map.put(a, new Set<B>());
}
map.get(a).add(b);

答案 1 :(得分:1)

如果您能够为项目添加依赖项,那么Guava就支持此项。您需要使用SetMultimap

答案 2 :(得分:0)

首先需要获取该设置然后添加到它:

map.get(a).put(b);

您可能还需要处理该集不存在的特殊情况。

Set<B> set = map.get(a);
if (set == null)
{
    set = new HashSet<B>();
    map.put(a, set);
}
set.put(b);