1

我正在尝试实现一个看起来像的复杂数据结构

Map<A,Set<B>> map = new HashMap<A,Set<B>>();

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

map.put(a,b);

但这无济于事,因为它需要一个集合。我的要求需要实现这个数据结构。有什么想法吗?

4

3 回答 3

1

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

if (!map.containsKey(a)) {
    map.put(a, new Set<B>());
}
map.get(a).add(b);
于 2012-04-18T16:09:56.037 回答
1

如果您有能力为您的项目添加依赖项,那么Guava对此提供支持。您需要使用SetMultimap

于 2012-04-18T16:10:15.433 回答
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);
于 2012-04-18T16:09:59.780 回答