存储和检索重复键值对的最佳集合是什么?
我应该使用哪种数据结构来存储和检索以下数据? (key1,val1)(key1,val2)(key1,val3)(key2,val4)(key2,val5)(key2,val6)(key3,val7)(key3,val8)(key3,val9)
请帮助我。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
看看 Google Guava 的 Multimap 及其子类型 ListMultimap 和 设置多图。
来自 Multimap 的 javadoc:类似于 Map 的集合,但可以将多个值与一个关联
单键。
Take a look at Google Guava's Multimap and its subtypes ListMultimap and SetMultimap.
From Multimap's javadoc: A collection similar to a Map, but which may associate multiple values with a
single key.
Map>
是最好的方法Map<Key, Collection<Value>>
is the best approach我不知道它是否适合您,但如果值是唯一的并使用标准
Map
,您可以考虑反转键/值I don't know if it would work for you, but you may consider reversing key/value if values are unique and use a standard
Map<ValueType, KeyType>
您可以拥有一个 Map,其中值是诸如列表/集合之类的集合,具体取决于您的对是否不同。
如果你有不同的对,你可以选择类似 Set 接口的东西:
如果你没有不同的对((key1, val1), (key1, val1)),你可以选择 List 接口:
You can have a Map where values are collections like List/Set Depending on whether your pairs are distinct or not.
If you have distinct pairs you can go for something like Set interface:
If you do not have have distinct pairs((key1, val1), (key1, val1)) you can go for List interface:
我们可以使用来自
Commons集合
的MultiValueMap
。参考:
http://commons.apache.org/proper/commons-collections/
示例:
We can use
MultiValueMap
FromCommons collections
.Reference :
http://commons.apache.org/proper/commons-collections/
Sample :