2012-03-14 32 views
2

我有HasMap对象是这样的:遍历按插入顺序HasMap在<逻辑:迭代>

HashMap<String,String> fileCounter = new HashMap<String,String>(); 

fileCounter.put("Total Files","15"); 
fileCounter.put("Total Success Files","10"); 
fileCounter.put("Total Failed Files","2"); 
fileCounter.put("Total In Process Files","4"); 
fileCounter.put("Total Records","100"); 
fileCounter.put("Total Success Records","80"); 
fileCounter.put("Total Failed Records","10"); 
fileCounter.put("Total In Process Records","10"); 

我的迭代器的逻辑是这样的:

<logic:iterate id="mapEntry" name="fileCounter"> 
    <tr> 
    <td><bean:write name="mapEntry" property="key"></td> 
    <td><bean:write name="mapEntry" property="value"></td> 
    </tr> 
</logic:iterate> 

问题:

当我执行迭代时,映射值和键被混洗,所以所有的itema都不会按照java代码的形式打印。

任何人都可以帮助我,如何以给定的顺序打印这张地图。

我想输出是这样的:

Total Files   15 
Total Success Files  10 
Total Failed Files  2 
Total In Process Files 4 
Total Records  10 
Total Success Records 80 
Total Failed Records 10 
Total In Process Records 10 
+0

由于您所做的只是通过一组具有关联值的字符串进行迭代,并且您正在手动插入它们,为什么还要使用地图呢?只需从头文件和数据构造字符串,并将它们放入列表中。 – 2012-03-14 17:16:07

+0

这是唯一的代码,我按照Hasmap顺序面对问题,实际代码是另一个代码。 – 2012-03-14 17:19:50

+0

我得到了正确的答案,现在我可以做到了。 – 2012-03-14 17:20:55

回答

7

使用LinkedHashMap而不是常规的HashMap中。它按项目插入的顺序进行迭代。