2011-11-24 23 views
0

我剛剛開始使用Java Map數據類型,我想知道是否有一種簡單的方法將所有鍵值對作爲表格打印出來?將Java Map的條目作爲表格打印的有效方法?

例如,我想要計算字符串中字符的頻率並將其存儲到Map中。

因此字符串「一路往下流」的結果打印到控制檯下面

Character Frequencies 
--------------------- 
' '  5 
'l'  2 
't'  3 
'h'  2 

ECT

從我發現什麼情況下,toString()在地圖上會返回一些符合「{= 5,l = 2,t = 3,h = 2}」曲調的曲子「

這很好,但是在toString結構中建立大型表格會很慢。除了字符串操作之外,還有更簡潔,更快捷的方法嗎?

+0

你是什麼意思的表?你是指'JTable'? – Behrang

+0

您要求提供「高效」,「簡單」,「更清潔」和「更快」的方式。你想要哪一個? –

+0

您可以遍歷所有條目並逐一打印。事先知道適當的列寬可能是一個問題。 – Thilo

回答

3

假設您的地圖鍵值對String類型整數,可以使用通過地圖迭代:

for (Map.Entry<String, Integer> entry : theMap.entrySet()) { 
    entry.getKey(); // gives you the 'Character' key 
    entry.getValue(); // gives you the 'Frequencies' value 
} 

當然,你需要做漂亮的印刷。

+0

謝謝,我沒有看到任何明顯的方式來遍歷一個地圖。 –

+1

請注意,根據使用的Map實現,條目可能沒有任何特別有意義的順序。 – Thilo

+1

正確。我假定他使用'TreeMap',因爲問題被標記爲'treemap' – ryanprayogo