List Inlst=originManage.find("select code,chdescirbe from Origin where code like '37%' and code=substr(code,1,4)||'00' order by tabIndex desc");List Outlst=originManage.find("select code,chdescirbe from Origin where code not like '37%' and code=substr(code,1,2)||'0000' order by tabIndex desc");
并入一个List中
List Originlst=new ArrayList();
Originlst.add(Inlst);
Originlst.add(Outlst);希望把合并后的List再放入一个Map,然后页面中遍历用。
生成一个map对象
遍历Originlst的时候,往map中加数据
java.lang.ClassCastException: java.util.ArrayList incompatible with com.sdbys.service.dict.origin.DictOrigin遍历代码如下:
for(int i=0;i<Originlst.size();i++){
DictOrigin origin = (DictOrigin) Originlst.get(i);
origin.getCode();
origin.getDescribe();
}
两个list对象下面才是 DictOrigin
java.lang.ClassCastException: java.util.ArrayList incompatible with com.sdbys.service.dict.origin.DictOrigin
类型转换异常,看看DictOrigin这个对象跟你的sql取出来的是否一致,也只有那2个元素。
select new Origin(o.code,o.chdescirbe from Origin as o where code like '37%' and code=substr(code,1,4)||'00' order by tabIndex desc)
并且在实体类中存在Origin(code,chdescirbe)的构造函数,才能转换为相应的实体。
Map m1 = new HashMap();
Iterator t=Inlst.iterator();
while(t.hasNext()){
DictOrigin origin = (DictOrigin) t.next();
m1.put(origin.getCode(),origin.getDescribe());
}//放入map2
Map m2 = new HashMap();
Iterator t2=Outlst.iterator();
while(t2.hasNext()){
DictOrigin origin = (DictOrigin) t2.next();
m2.put(origin.getCode(),origin.getDescribe());
}
//合并两个Map
m2.putAll(m1);我只做到这样实现,先合并List再放入Map,不知道如何实现?请教各位?