我action里赋值
Map<String,String> r0=new HashMap<String,String>();
r0.put("DrugBankID1", "DrugBankID1");
r0.put("DrugBankID2", "DrugBankID2");
r0.put("相同靶标", "相同靶标");
r0.put("靶标在PPI网络距离", "靶标在PPI网络距离");
r0.put("靶标相同邻居节点", "靶标相同邻居节点");
r0.put("靶标邻居节点距离", "靶标邻居节点距离");
r0.put("相同靶标比例", "相同靶标比例");
r0.put("靶标GO相似度", "靶标GO相似度");
r0.put("化合物结构相似度", "化合物结构相似度");
r0.put("ATC编码相似度", "ATC编码相似度");
r0.put("靶标通路相似度", "靶标通路相似度");
r0.put("靶标相同邻居节点比例", "靶标相同邻居节点比例");
r0.put("协同概率", "协同概率");
r0.put("拮抗概率", "拮抗概率");
r0.put("药物交互类型", "药物交互类型");
List<Map<String,String>>resultHeader = new ArrayList<Map<String,String>>();
jsp界面打印
<s:iterator value="resultHeader" id="rh" status="status">
<td height="50px">ID</td>
<s:iterator value="resultHeader[#status.index]" >
<td height="50px"><s:property value="value"/></td>
</s:iterator>`
</s:iterator>
但是结果的顺序变了。。如图
难道s:iterator遍历的时候不是按照我map添加的顺序而输出的么?怎么控制它按照我添加的顺序一个一个输出,比如第一个DrugBankID1 第二个DrugBankID2 第三个 相同靶标
------解决方案--------------------
Map是无序的...想实现排序效果可以参考下面的例子
Map<String, Integer> map = new TreeMap<String, Integer>();
map.put("j2se", 20);
map.put("j2ee", 10);
map.put("j2me", 30);
List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(
map.entrySet());
//排序前
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.println(id);
}
//排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1,
Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
//排序后
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.println(id);
}
排序前:
j2ee=10
j2me=30
j2se=20
排序后:
j2me=30
j2se=20
j2ee=10
------解决方案--------------------
楼主可以用下LinkedHashMap,是有序的,以前我也遇到过用LinkedHashMap解决问题,给你发个链接可以参考http://www.cnblogs.com/hubingxu/archive/2012/02/21/2361281.html
------解决方案--------------------
即Map<String,String> r0=new LinkedHashMap<String,String>();
------解决方案--------------------
LinkedHashMap 试试