2012-03-14 98 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中。它按項目插入的順序進行迭代。