如何根据元素的位置从HashMap中检索元素,这是可能的吗?
发布于 2011-04-28 22:14:51
使用LinkedHashMap,当您需要按位置检索时,将值转换为ArrayList。
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);发布于 2015-10-28 01:55:59
如果希望保持将元素添加到映射中的顺序,请使用LinkedHashMap,而不是只使用HashMap。
下面是一种方法,它允许您通过地图中的索引来获取值:
public Object getElementByIndex(LinkedHashMap map,int index){
return map.get( (map.keySet().toArray())[ index ] );
}发布于 2017-06-15 18:27:55
如果出于某种原因,您必须使用hashMap,您可以将keySet转换为数组,并对数组中的键进行索引,以获得映射中的值,如下所示:
Object[] keys = map.keySet().toArray();然后您可以访问地图,如下所示:
map.get(keys[i]);https://stackoverflow.com/questions/5237101
复制相似问题