Java 存储和检索重复键、值对的最佳集合是什么?

Java 存储和检索重复键、值对的最佳集合是什么?,java,collections,Java,Collections,我应该使用哪个数据结构来存储和检索以下数据? 键1,val1key1,val2key1,val3key2,val4key2,val5key2,val6key3,val7key3,val8key3,val9 请帮帮我 Map是最好的方法Map是最好的方法看看谷歌番石榴及其子类型 来自Multimap的javadoc:一个类似于Map的集合,但它可以将多个值与 单键 看看谷歌番石榴及其子类型和应用 来自Multimap的javadoc:一个类似于Map的集合,但它可以将多个值与 单键 您可以有一个映

我应该使用哪个数据结构来存储和检索以下数据? 键1,val1key1,val2key1,val3key2,val4key2,val5key2,val6key3,val7key3,val8key3,val9


请帮帮我

Map是最好的方法

Map是最好的方法

看看谷歌番石榴及其子类型

来自Multimap的javadoc:一个类似于Map的集合,但它可以将多个值与
单键

看看谷歌番石榴及其子类型和应用

来自Multimap的javadoc:一个类似于Map的集合,但它可以将多个值与
单键

您可以有一个映射,其中的值是集合,如List/Set,这取决于您的对是否不同

如果您有不同的对,您可以选择类似于设置接口:

   Map<key, Set<value>>

   Ex Map<key, HashSet<Value>>
Map<key, List<value>>    
Map<key, ArrayList <Value>>
如果您没有不同的pairskey1、val1、key1、val1,则可以转到列表界面:

   Map<key, Set<value>>

   Ex Map<key, HashSet<Value>>
Map<key, List<value>>    
Map<key, ArrayList <Value>>

您可以有一个映射,其中的值是集合,如List/Set,这取决于对是否不同

如果您有不同的对,您可以选择类似于设置接口:

   Map<key, Set<value>>

   Ex Map<key, HashSet<Value>>
Map<key, List<value>>    
Map<key, ArrayList <Value>>
如果您没有不同的pairskey1、val1、key1、val1,则可以转到列表界面:

   Map<key, Set<value>>

   Ex Map<key, HashSet<Value>>
Map<key, List<value>>    
Map<key, ArrayList <Value>>

<>我不知道它是否适合你,但是如果你认为值是唯一的,你可以考虑反转键/值,使用一个标准的图

< p>我不知道它是否对你有用,但是如果值是唯一的,你可以考虑反转键/值,使用一个标准的图

,我们可以从共享集合中使用MultValueMax。 参考:

样本:

我们可以使用Commons集合中的多值映射

参考:

样本:


所有的值都不同吗?是的。所有值都是不同的。所有值都是不同的吗?是的。所有值都是distinct,但它是一个接口,而不是一个数据结构,即一个实现。@Thilo是的,它只是一个结构,这个结构的任何实现都应该解决这个问题。映射接口没有定义数据结构。树映射、哈希映射、由键值存储支持的映射、由关系数据库支持的映射都是完全不同的数据结构。其中一些可能比其他更适合于此。但这是一个接口,而不是一个数据结构,即一个实现。@是的,这只是一个结构,此结构的任何实现都应该解决这个问题。映射接口不定义数据结构。树映射、哈希映射、由键值存储支持的映射、由关系数据库支持的映射都是完全不同的数据结构。其中一些可能比其他更适合于此。更好地使用声明中的接口:Map或Map。更好地使用声明中的接口:Map或Map。