2012-08-17 39 views
1

可能重复:
ordered map implementation如何从HashMap中的键和值的顺序,他们已经把INT地图

我使用HashMap来存储值如下 -

Map<String,String>   propertyMap=new HashMap<String,String>(); 


propertyMap.put("Document Type", dataobject.get("dDocType")); 
propertyMap.put("Document Title", dataobject.get("dDocTitle")); 
propertyMap.put("Revision Label", dataobject.get("dRevLabel")); 
propertyMap.put("Security Group", dataobject.get("dSecurityGroup")); 

之后,我得到了hashmap key和值列表

documentProperties = new ArrayList(propertyMap.entrySet()); 

但是,当我遍历我没有得到在我已经把它放到地图的顺序项和值列表..

是否存在通过反正我能得到的值我把它放到地图中。 谢谢

回答

2

我相信你在找什么是LinkedHashMap

该链接列表定义迭代排序,这通常是在哪个键被插入到地图(插入顺序)的顺序。

由此可知,为什么需要单独的ArrayList?您可以直接遍历Map.entrySet

for (final Map.Entry<String, String> entry : propertyMap.entrySet()) { 
    ... 
} 
0

propertyMap.entrySet()你得到的结果为SetSet是无序的。

new ArrayList(propertyMap.entrySet());根据您在Set中的顺序(可能不是您放入地图的顺序)构建一个列表。

如果您正在寻找订单的地图,你可以使用LinkedHashMap

下面是这个topic有趣的讨论。

0

给出试试这个..

for(Map.Entry<String, String> m : map.entrySet()){ 


     // Use m.getKey() to get the Key. 
     // Use m.getValue() to get the Value. 
} 
相关问题