Mapping 如何基于元素号访问哈希映射中的元素?

Mapping 如何基于元素号访问哈希映射中的元素?,mapping,hashmap,multimap,Mapping,Hashmap,Multimap,我有一个包含5个元素的哈希映射。我想根据(元素id)用户输入显示元素的映射值和键值。例如,如果用户输入2,我希望在散列映射中显示元素#2的映射值和键 我该怎么做呢 谢谢, Praveen这是一个没有答案的问题;不管使用何种语言或平台(您忽略了提及),根据定义,hashmap是一个无序的容器。没有元素2。hashmap中的元素不按任何定义的顺序保存。映射通常是无序容器。但是,如果您使用的是Java,那么就可以利用LinkedHashMap类,该类为其元素提供一致的顺序 这个类仍然只提供顺序访问,而

我有一个包含5个元素的哈希映射。我想根据(元素id)用户输入显示元素的映射值和键值。例如,如果用户输入2,我希望在散列映射中显示元素#2的映射值和键

我该怎么做呢

谢谢,
Praveen这是一个没有答案的问题;不管使用何种语言或平台(您忽略了提及),根据定义,hashmap是一个无序的容器。没有元素2。hashmap中的元素不按任何定义的顺序保存。

映射通常是无序容器。但是,如果您使用的是Java,那么就可以利用
LinkedHashMap
类,该类为其元素提供一致的顺序


这个类仍然只提供顺序访问,而不是随机访问,因此查找第n个元素将是O(n)。如果你真的想要随机访问,那么你应该考虑使用<代码>列表<代码>,而不是使用<代码> map < /C>。我使用C++,我在某些地方读到,容器中的元素是根据键值从低到高排序的。元素可以根据键值的一些函数而保存在数组中,是的。例如,它可能是键值mod 31(假设键是int),在这种情况下,键为5和37的元素都将位于第六个插槽中。由于这个原因,“第六个元素”没有什么有意义的定义。现在,如果键是一个
int
,而你真正想要的是一个元素,它的键是特定的
int
,那么这是一个完全不同的故事——这正是地图所做的。给它一个int和一个object,然后给它同样的int,你会得到同样的object。我知道我们可以使用键值找到映射值,但我想基于映射中的元素#同时获得键值和映射值。我认为这是不可能的。我正试图在C++中做到这一点。“这有可能吗?”普拉文:我不知道。