我正在寻找更好的算法来通过其键以表格格式打印LinkedHashMap。 我在这里解释一下场景,
//hashmap goes like this
LinkedHashMap<String , ArrayList<String>> hash=new LinkedHashMap<String,ArrayList<String>>();
// put some values in some arraylist
ArrayList<String> value1=Arrays.asList("s1", "s2", "s3");
ArrayList<String> value2=Arrays.asList("s4", "s5", "s6");
ArrayList<String> value1=Arrays.asList("s7", "s8", "s9");
// put values in hashmap
hash.put("key1",value1);
hash.put("key2",value2);
hash.put("key3",value3);
现在,我希望在html
表中输出应该是这样的。
key1 key2 key3
s1 s4 s7
s2 s5 s6
s3 s6 s9
这样做的好方法是什么?谢谢。
答案 0 :(得分:1)
如果您使用 JSP 页面,请尝试此
LinkedHashMap的&GT; hash = new LinkedHashMap&gt;();
// put some values in some arraylist
ArrayList<String> value1=Arrays.asList("s1", "s2", "s3");
ArrayList<String> value2=Arrays.asList("s4", "s5", "s6");
ArrayList<String> value1=Arrays.asList("s7", "s8", "s9");
// put values in hashmap
hash.put("key1",value1);
hash.put("key2",value2);
hash.put("key3",value3);
<%
for(Entry<String, ArrayList<String>> en: hash.entrySet()) {
%>
<td>
<% en.getKey(); %>
</td>
<% }
%>
</td>
</tr>
您也可以使用JSTL标记执行此操作。
答案 1 :(得分:1)
尝试,
StringBuffer sb=new StringBuffer();
sb.append("<tr>");
sb.append("<td>" + hash.get("key1").get(0) + "</td>");
sb.append("<td>" + hash.get("key2").get(0) + "</td>");
sb.append("<td>" + hash.get("key3").get(0) + "</td>");
sb.append("</tr>");
答案 2 :(得分:1)
以下代码应该
public static void main(String[] args) {
// hashmap goes like this
LinkedHashMap<String, List<String>> hash = new LinkedHashMap<String, List<String>>();
// put some values in some arraylist
List<String> value1 = (List<String>) Arrays.asList("s1", "s2", "s3");
List<String> value2 = (List<String>) Arrays.asList("s4", "s5", "s6");
List<String> value3 = (List<String>) Arrays.asList("s7", "s8", "s9");
// put values in hashmap
hash.put("key1", value1);
hash.put("key2", value2);
hash.put("key3", value3);
int count = 0;
boolean exit = false;
while (!exit) {
for (String key : hash.keySet()) {
String value = hash.get(key).get(count);
System.out.printf("\t" + value);
}
System.out.printf("\n");
count++;
if (count == hash.get("key1").size()) {
exit = true;
}
}
}
以下是所需的输出:
s1 s4 s7
s2 s5 s8
s3 s6 s9