1

可能重复:
有序地图实现

我正在使用哈希图来存储值,如下所示 -

 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"));

之后,我在 List 中获取 hashmap 键和值

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

但是当我遍历列表时,我没有按照我将其放入地图的顺序获取键和值。

无论如何,我可以通过它获取订单中的值,我将其放入地图中。谢谢

4

4 回答 4

2

我相信您正在寻找的是LinkedHashMap.

这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。

按为什么,为什么需要单独的ArrayList?您可以直接迭代Map.entrySet

for (final Map.Entry<String, String> entry : propertyMap.entrySet()) {
  ...
}
于 2012-08-17T05:42:47.090 回答
0

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

new ArrayList(propertyMap.entrySet());使用您在 Set 中的顺序构造一个列表(这可能不是您放入 map 的顺序)。

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

这是关于这个主题的有趣讨论。

于 2012-08-17T05:40:20.733 回答
0

您必须使用LinkedHashMap。有关更多详细信息,请查看迈克尔给出的这个问题和答案

于 2012-08-17T05:43:18.597 回答
0

试试这个..

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


       // Use m.getKey() to get the Key.
       // Use m.getValue() to get the Value.
}
于 2012-08-17T05:59:17.523 回答