2014-05-13 238 views
0

我有以下方式創建一個HashMap,迭代和打印內容

HashMap products = new HashMap<String, String[]>(); 
products.put("001",new String[] {"SAM", "100"}); 

現在我需要打印地圖的內容表中的,我知道如何打印它,如果它是用嵌套數組創建的,如下面的代碼片段所示。

<% 
    for (Map.Entry<String, String> entry : orderList.entrySet()) { 
%> 
<tr> 
    <td><%=counter++%></td> 
    <td><%=entry.getKey()%></td> 
    <td><%=entry.getValue()%></td> 
</tr> 

如何使用嵌套數組打印HashMap中的內容?

解決方案我試過,

<% 
       for (Map.Entry<String, String[]> entry : Order.entrySet()) { 
      %> 
      <tr> 
       <td><%=counter++%></td> 
       <td><%=entry.getKey()%></td> 
       <td></td> 
       <td></td> 
      </tr> 
      <% 
+1

您是否嘗試過使用'的Map.Entry 項:orderList.entrySet()'? – Shaded

+0

是的,它不工作 – ycr

+0

如果你把我的代碼和@ StanislavL的代碼結合起來,你應該有你的解決方案。如果不是這種情況,你需要發佈什麼是錯的。它不打印嗎?它是否給出錯誤? – Shaded

回答

0

我已經設法解決由於StanislavL和陰影的答案,因此完整的解決方案如下圖所示的,

HashMap中被定義爲以下,

static HashMap<String,String[]> products = new HashMap<String, String[]>(); 
products.put("001",new String[] {"Samsung", "USD. 500 ", "5 Units" }); 

這如下所示,使用JSP可以將Hashmap打印在表中。

<% int counter = 1; %> 
<table class="styledLeft" id="moduleTable"> 
      <thead> 
       <tr> 
        <th width="10%">No</th> 
        <th width="10%">Model No</th> 
        <th width="30%">Model/Make</th> 
        <th width="30%">Price</th> 
        <th width="20%">Available Quantity</th> 
       </tr> 
      </thead> 
      <tbody> 
       <% 
        for (Map.Entry<String, String[]> entry : orders.entrySet()) { 
       %> 
       <tr> 
        <td><%=counter++%></td> 
        <td><%=entry.getKey()%></td> 
        <%for (String arrayElement: entry.getValue()) {%> 
        <td><%=arrayElement%></td> 
        <% 
        } 
        %> 
       </tr> 
       <% 
        } 
       %> 
      </tbody> 
     </table> 

最終輸出看起來就像這樣,

The Final OutPut

1

你需要一個更嵌套循環

for (String arrayElement: entry.getValue()) { 
<%=arrayElement%> 

您可以在<TD>,而不是簡單的<td><%=entry.getValue()%></td>

+0

在這種情況下,定義第一個循環的方法是什麼?我試過Map.Entry entry:orderList.entrySet();並且它不起作用 – ycr

+0

您可以定義產品地圖,但是您有一些未知的orderList。什麼是orderList?你說「它沒有工作」。它以哪種方式不起作用?任何錯誤?結果如何? – StanislavL

+0

嗨,它只是一個錯字,我試過的解決方案被添加到原始問題。 – ycr

1

爲什麼不能我們用定義一個嵌套表jstl在這裏?如..

<c:forEach var="entry" items="${products}"> 
    Key: <c:out value="${entry.key}"/> 
    Value: <c:forEach var="arrayVar" items="${entry.value}"> 
      <li>${arrayVar}</li> 
     </c:forEach> 
</c:forEach> 
+0

@Luiggi ..不。我在這裏遍歷數組並打印結果。所以它會打印出價值。如果我們給出像'那麼它會像你提到的那樣打印。 –

+0

哦對。沒有看到內部的''。那麼這就是要走的路。 –