2014-07-18 76 views
0

LinkedHashMap中我有一個LinkedHashMap其下面包含另一個LinkedHashMap迭代包含另一個

LinkedHashMap<String,LinkedHashMap<String,String>> containerMap = new LinkedHashMap<String,LinkedHashMap<String,String>>(); 

我想從單獨的容器地圖提取值?我的意思是對於集裝箱地圖的每個關鍵字我有一個LinkedHashMap我想用它來顯示在我的JSP下拉列表中

任何想法?

+0

所以,你需要有一個基於容器的多個下拉菜單的使用jstl嵌套的forEach循環? –

+0

容器映射中包含的LinkedHashMap包含我想在jsp上顯示爲下拉列表的選項的鍵和值。我的意思是說假設容器映射具有>,然後Q1是關鍵(問題編號)及其值(linkedHashMap)包含我想在我的JSP上顯示的值和描述。 – JavaDeveloper

+0

我們瞭解地圖的內容。我們不清楚你最終想要做什麼......一個下拉列表,它包含基於你傳入的一些關鍵選擇器的內部LinkedHashMap的內容,或者多個下拉列表(每個關鍵字一個containerMap)? – alfreema

回答

0
LinkedHashMap<String,LinkedHashMap<String,String>> containerMap = new LinkedHashMap<String,LinkedHashMap<String,String>>(); 

我省略了類型(假設你的Java 7至少使用)

LinkedHashMap<String, String> lhMap1 = new LinkedHashMap<>(); 
lhMap1.put("a", "b"); 
LinkedHashMap<String, String> lhMap2 = new LinkedHashMap<>(); 

containerMap.put("1", lhMap1); 
containerMap.put("2", lhMap2); 

然後你的容器上,你可以叫get()

containerMap.get("1"); // will give you lhMap1 
containerMap.get("1").get("a"); // will return 'b' 

另外,鍵設置()和值()是有用的。

containerMap.keySet(); // will give you a Set<String> 
containerMap.values(); // will give you a Collection<LinkedHashMap<String, String>> 
+0

感謝您的回覆,我正在評估它:) – JavaDeveloper

+0

感謝somthing我很熟悉,但我用Map.Entry非常感謝:) – JavaDeveloper

1

我假設你需要基於容器映射的多個下拉菜單。如果是這樣,從您sevlet設置地圖Request對象爲request.setAttribute("containerMap", containerMap)和JSP

<c:forEach items="${containerMap}" var="containerEntry" > 
    <select name="${containerEntry.key}" id="${containerEntry.key}"> 
    <c:forEach items="${containerEntry.value}" var="innerEntry"> 
     <option value="${innerEntry.key}"> 
      <c:out value="${innerEntry.value}" /> 
     </option> 
    </c:forEach> 
</c:forEach> 
+0

感謝您的回覆但問題稍微複雜一點。容器映射中包含的LinkedHashMap包含我想在jsp上顯示爲下拉列表的選項的鍵和值。我的意思是說假設容器映射具有Q1,LinkedHashMap,然後Q1是鍵(問題編號),並且它的值(linkedHashMap)包含我想在我的JSP上顯示的值和描述。 – JavaDeveloper

+0

他的解決方案几乎完全符合你所描述的內容,除非你只需要一個反映一些正在傳入的密鑰的下拉菜單。 – alfreema

相關問題