List<Map<String, Object>> jbxx,jbxx怎么遍历取值啊,高手请进,在线等,回答详细一点哦。最好直接上代码

jbxx是基本信息的意思

第1个回答  2011-09-15
我看错题目了吗?这个直接这样取不久行了么?
for(Map<String,Object> map : jbxx ){
String xk = (String)map.get("xk");//强转看对象类型了,以String作为例子
String dydsxm= (String)map.get("dydsxm");
}

以下是演示的程序和打印结果
public static void main(String[] args){
//数据准备
Map<String,Object> map = null;
List<Map<String,Object>> jbxx = new ArrayList<Map<String,Object>>();
for(int i = 0;i<10;i++){
map = new HashMap<String,Object>();
map.put("xk", i+"");
map.put("dydsxm", i+"");
jbxx.add(map);
}
//取值过程
for(Map<String,Object> m : jbxx ){
String xk = m.get("xk")==null?"":(String)m.get("xk");
String dydsxm= m.get("dydsxm")==null?"":(String)m.get("dydsxm");
System.out.println("xk='"+xk+"',dydsxm='"+dydsxm+"'");//演示取值结果
}

}

xk='0',dydsxm='0'
xk='1',dydsxm='1'
xk='2',dydsxm='2'
xk='3',dydsxm='3'
xk='4',dydsxm='4'
xk='5',dydsxm='5'
xk='6',dydsxm='6'
xk='7',dydsxm='7'
xk='8',dydsxm='8'
xk='9',dydsxm='9'
第2个回答  2011-09-15
遍历两次
我也是从网上找的,试试吧
<%
List<Map> list = new ArrayList<Map>();
Map<String,String> map1 = new HashMap<String,String>();
map1.put("testaa","mytestaa");
map1.put("testbb","mytestbb");
Map<String,String> map2 = new HashMap<String,String>();
map2.put("testcc","mytestcc");
map2.put("testdd","mytestdd");
list.add(map1);
list.add(map2);
pageContext.setAttribute("list",list);
%>

假设使用jstl标签输出:
<c:forEach items="${list}" var="temp">
<c:forEach items="${temp}" var="map">
${map.key}---->${map.value}<br>
</c:forEach>
</c:forEach>
第3个回答  2011-09-15
给个模板, 自己多看api, 这种直接在网上查就可以
if(jbxx != null){
//遍历 list,每个都是Map
for(Map map: jbxx){
if(map != null){
//得到map的所有key
Set<String> keys = map. keySet();
//遍历key
for(String key: keys){
key
map.get(key)
}
}
}
}
第4个回答  2011-09-15
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

for (Map<String, Object> map : jbxx) {
Set<Entry<String, Object>> set = (Set<Entry<String, Object>>) map.entrySet();
Iterator<Entry<String, Object>> its = set.iterator();
while (its.hasNext()) {
Entry<String, Object> entry = (Entry<String, Object>) its.next();
String key = (String) entry.getKey(); // key
Object value = entry.getValue(); // value

}
}
第5个回答  2011-09-15
for(int i=0;i<jbxx.size();i++) {
Map<String,Object> map = jbxx.get(i);
Set<String> set = map.keySet();
Iterator<String> its = set.iterator();
while (its.hasNext()) {
// key
String key = its.next();
// value
Object value = map.get(key);
}
}追问

还是有点不懂,jbxx里边有xk,dydsxm这两个字段,他们的值怎么取啊?

追答

jbxx里边有xk,dydsxm这两个字段
那应该有个类来封装的吧。
比如:
public class Bean {
private Object xk;
private Object dydsxm;

// 省略get/set...
}
for(int i=0;i map = jbxx.get(i);
Set set = map.keySet();
Iterator its = set.iterator();
while (its.hasNext()) {
// key
String key = its.next();
// value
Object value = map.get(key);
// 把value转成对应的类型。
Bean b = (Bean)value;
// xk的值
System.out.println(b.getXk());
// dydsxm的值
System.out.println(b.getDydsxm());
}
}

本回答被提问者采纳
相似回答