java - 实现多键值映射

标签 java data-structures

我遇到一种情况,我需要一个键值对数据结构。但它应该允许对应的多个键和值。

就像:

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/

相关文章:

C指针地址很奇怪

java - 使用 JavaMail 阅读阿拉伯语附件

java - 多少钱-XX :MaxPermSize size i can mention for 4GB and 8GB Ram and calculation for this?

c# - MySQL在表中存储表

c - 优先级队列不按升序插入元素

c++ - 在程序中使用同一类的两个不同堆栈时出现段错误

设置最大堆大小时,Java Applet 无法正常启动

java - jsp 标记文件是否有 DTD 或 Schema 文件?

java - 如何将数据从返回 Activity 传递到上一个 Activity 中的对话框?

algorithm - 最小的硬币变化(有限供应)具有更好的时间复杂度讨论