【问题标题】:Manipulating a complicated hashmap操作复杂的哈希图
【发布时间】:2012-04-18 16:07:18
【问题描述】:

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

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

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

map.put(a,b);

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

【问题讨论】:

  • 你想在地图上添加什么?
  • 我正在尝试从网络服务中提取信息。键 A 本身是一个 set-say 项目名称。每个项目都有一组团队成员。所以我需要将项目映射到另一组。希望我在这里有意义:(

标签: java data-structures hashmap


【解决方案1】:

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

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

【讨论】:

  • 谢谢。这是我用的。
【解决方案2】:

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

【讨论】:

  • 嗯。 Guava 团队成员,我想你的意思是SetMultimap
【解决方案3】:

您首先需要获取集合,然后添加到其中:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2011-01-04
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2021-03-22
    相关资源
    最近更新 更多