我有点迷失在哪个数据结构用来有效解决我的问题。我想将一个数组映射到一个值。我的意思是,如果我有1000个值,我需要能够将多个其他值映射到1000个值中的每一个值。Java数据结构保存一个值映射到一个数组
例如,
我有1000-1000的A值。对于每个值A,我想映射k个其他值B(这些范围也是1-1000)。但我确实希望确保任何值映射到A都不重复。不同A值之间的映射值可以相同(即2和1000都映射到它们)。
1 -> 138, 92, 835, 841, 12
2 -> 766, 324, 26, 933, 62
3 -> 53, 131, 62, 121, 67
4->160, 160 #NOT OK
4-> 162, 171, 594, 912, 455
...
1000->146, 981, 67, 246, 146
所以,当我看到一些任意值A时,我应该很容易识别任何值映射到它的值。所以如果我想访问值3,我应该能够打印出值A(3)及其相关值(53,131,62,121,67)。
我希望这是有道理的。实现这种数据结构的最佳方式是什么?任何解释或例子的帮助将不胜感激。
这应该很好,非常感谢! – Paul
通过'Map'检索会更容易和高效 –
使用列表(因为序号基本上是map键)并且具有O(1)查找时间,因为它由一个数组支持,所以检索就非常容易的地图。 – PaulProgrammer