如何在java中为单个键存储多个值,而不使用hashmap或multi-map。任何人都知道如何只使用数组吗?
例如:
Key : Id
Value : a , b, c, d
所以不要将上面存储为Id a , Id b ,Id c
等
我想将其存储为Id "a,b,c,d"
。即以字符串形式对多个值的一个键。
所以我不想为此使用任何multimap或hashmap。
答案 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);
}