首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以根据元素的位置从HashMap获取元素?

是否可以根据元素的位置从HashMap获取元素?
EN

Stack Overflow用户
提问于 2011-03-09 03:10:44
回答 12查看 194.7K关注 0票数 107

如何根据元素的位置从HashMap中检索元素,这是可能的吗?

EN

回答 12

Stack Overflow用户

发布于 2011-04-28 22:14:51

使用LinkedHashMap,当您需要按位置检索时,将值转换为ArrayList。

代码语言:javascript
复制
LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap<String,String>();
/* Populate */
linkedHashMap.put("key0","value0");
linkedHashMap.put("key1","value1");
linkedHashMap.put("key2","value2");
/* Get by position */
int pos = 1;
String value = (new ArrayList<String>(linkedHashMap.values())).get(pos);
票数 117
EN

Stack Overflow用户

发布于 2015-10-28 01:55:59

如果希望保持将元素添加到映射中的顺序,请使用LinkedHashMap,而不是只使用HashMap

下面是一种方法,它允许您通过地图中的索引来获取值:

代码语言:javascript
复制
public Object getElementByIndex(LinkedHashMap map,int index){
    return map.get( (map.keySet().toArray())[ index ] );
}
票数 56
EN

Stack Overflow用户

发布于 2017-06-15 18:27:55

如果出于某种原因,您必须使用hashMap,您可以将keySet转换为数组,并对数组中的键进行索引,以获得映射中的值,如下所示:

代码语言:javascript
复制
Object[] keys = map.keySet().toArray();

然后您可以访问地图,如下所示:

代码语言:javascript
复制
map.get(keys[i]);
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5237101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档