单键&不使用multimap的多个值 - Java

时间:2014-04-24 21:11:18

标签: java arrays data-structures

如何在java中为单个键存储多个值,而不使用hashmap或multi-map。任何人都知道如何只使用数组吗?

例如:

Key : Id
Value   : a , b, c, d

所以不要将上面存储为Id a , Id b ,Id c

我想将其存储为Id "a,b,c,d"。即以字符串形式对多个值的一个键。

所以我不想为此使用任何multimap或hashmap。

2 个答案:

答案 0 :(得分:0)

如果您不想使用多地图或散列图并想要使用数组,请使用二叉树。每个节点都是一个密钥,节点的值将是一个链表。

但是,任何非hashmap结构都不会给你一个O(1)返回时间。您可以使用二叉树或Trie,依赖于您的Id(无论是字符串还是int)。对于Trie,查找将是O(k)~`O(1),但它对字符串更好。

如果你没有使用散列图,这是一个无效的解决方案。在接受采访/在线挑战时,您似乎已经问过这个问题,这些问题会测试您对数据结构的理解。

答案 1 :(得分:0)

对于正在寻找解决方案的人可能有用 使用Java HashMap:

if (myMap.get(key) == null) {
                myMap.put(key, value);
            } else
                myMap.computeIfPresent(key, (k, v) -> v + value);
        }