我遇到一种情况,我需要一个键值对数据结构。但它应该允许对应的多个键和值。
就像:
a - 1
b - 2
a - 3
因此,在检索时,我可以使用 getFirstValueOfKey(key)
并获取 1...类似的东西。
是否存在现有的东西或者我需要实现它?
如果我需要实现这一点,我想继续:
创建一个类,a=可以保存K-V对,并将它们添加到列表中。并编写相应的所需API。这是正确的做法吗?我要继续这样吗?
编辑:我实际上想要数据结构中的多个键条目。
编辑:问题是,我想保持新条目(键)的顺序,即我想要有键的放置顺序(a,然后 b 和然后a)。如果使用值数组,则该序列会丢失。
示例:
a -> 1(时间 0) b -> 2(时间 1) a -> 3(时间 2)
这些时间戳也是必需的。
最佳答案
您可以通过Guava查看MultiMap
来自 Google 的库
There are two ways to think of a Multimap conceptually: as a collection of mappings from single keys to single values:
a -> 1 a -> 2 a -> 4 b -> 3 c -> 5 or as a mapping from unique keys to collections of values:
a -> [1, 2, 4] b -> 3 c -> 5
尽管您有 jar 依赖项,但 Guava 集合通常更加简洁和高效
关于java - 实现多键值映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842409/