我有一個HashMap
與String
作爲關鍵和List
作爲值。如何通過hashmap值遍歷列表
HashMap
的名稱是pageMap
。
說這話pageMap
具有以下鍵和值:
現在我想在下面的模式顯示:
order
page1
page2
page3
key2
value1
value2
value3
value4
請告訴我,我該怎麼做呢?
我有一個HashMap
與String
作爲關鍵和List
作爲值。如何通過hashmap值遍歷列表
HashMap
的名稱是pageMap
。
說這話pageMap
具有以下鍵和值:
現在我想在下面的模式顯示:
order
page1
page2
page3
key2
value1
value2
value3
value4
請告訴我,我該怎麼做呢?
import java.util.*;
import java.lang.*;
public class StringListMapExample {
public static String asTreeFormattedString(HashMap<String,List<String>> map) {
final StringBuilder builder = new StringBuilder();
for (String key : map.keySet()) {
builder.append(key + "\n");
for (String string : map.get(key)) {
builder.append("\t" + string + "\n");
}
}
return builder.toString();
}
public static void main(String[] args) {
HashMap<String, List<String>> map = new HashMap<String, List<String>>();
map.put("order", Arrays.asList(new String[]{"page1", "page2", "page3"}));
System.out.println(asTreeFormattedString(map));
}
}
非常感謝Jeppi! – 2013-02-19 01:02:15
其實解決方案非常簡單。
hashmap.get(key).iterator();
是給定鍵的列表的迭代器。
你爲什麼不嘗試向自己看着辦吧?
可能是我很懶惰...或試圖學習不同的方式來實現解決方案:) – 2013-02-19 01:18:52
Iterate using iterator through all keys of hashmap using keyset()
{
print key
Iterate through value list using iterator
{
print each value
}
}
public String formatDictionary(Map<String, List<String>> map){
String output = '';
for (String key : map.keySet()){
output = output + key + "\n";
for (String value: map.get(s)){
output = output + "\t" + value + "\n";
return output
這是非常相似Jeppi的答案,但使用字符串連接這是我關於Java最喜歡的事情之一。我沒有運行任何基準測試,但我的猜測是他的速度會更快一些,但我的開銷會更少。
你試過了什麼?你面臨什麼問題? – 2013-02-18 22:59:31
爲了獲得良好的指導,最好展示一些代碼 – 2013-02-18 22:59:42
請添加您到目前爲止嘗試過的代碼。 – Ankit 2013-02-18 23:21:30