
sessioncreateSQLQuery(sql)setResultTransformer(TransformersALIAS_TO_ENTITY_MAP);
因为你设置了这个,如果你把这个改成
sessioncreateSQLQuery(sql)
这样放回值就不是这个类型了而是List<Object>
一个 List<Map>变量的内部数据结构
[{F_CITY_NAME=徐州, CNT=1141}, {F_CITY_NAME=镇江, CNT=577}]
一个Map变量的内部数据结构
{泰州非边界=7, 宿迁无=26, 无锡省边界=6, 常州非边界=10, 淮安地市边界=70, 南京null=21}
在jsp页面中不能通过${listsize}取列表长度,而是
<%@ taglib uri=">
你把Map m=new HashMap();这一句定义Map的语句移动到for循环里面,就可以了。
完整的程序如下:
import javautilArrayList;import javautilHashMap;
import javautilList;
import javautilMap;
public class Test8 {
public static void main(String[] args) {
List li=new ArrayList();
String []a={"a","b","c"};
String []b={"d","e","f"};
String []c={"g","h","l"};
liadd(a);
liadd(b);
liadd(c);
List<Map<Object,Object>> l=new ArrayList<Map<Object,Object>>();
for(int i=0;i<lisize();i++){
String[] d=(String[])liget(i);
Map m=new HashMap();
mput(0,d[0]);
mput(1,d[1]);
mput(2,d[2]);
ladd(m);
Systemoutprintln(ltoString());
}
}
}
运行结果:
[{0=a, 1=b, 2=c}]
[{0=a, 1=b, 2=c}, {0=d, 1=e, 2=f}]
[{0=a, 1=b, 2=c}, {0=d, 1=e, 2=f}, {0=g, 1=h, 2=l}]
import javautilArrayList;
import javautilList;
public class MyMap{
//键(key)
private List<String> key;
//值(values)
private List<Object> value;
/
构造方法
/
public MyMap() {
//初始化
key=new ArrayList<String>();
value=new ArrayList<Object>();
}
/
增加
@param k
@param v
/
public void add(String k,Object v){
keyadd(k);
valueadd(v);
}
/
获取
@param k
@return
/
public Object get(String k){
Object obj=null;
//遍历key,当与传入的值相同时,则取出对应位置的value
for(int i=0;i<keysize();i++){
if(keyget(i)equals(k)){
obj=valueget(i);
}
}
return obj;
}
/
删除
@param k
/
public void remove(String k){
//遍历key,当与传入的值相同时,则删除对应位置的key和value
for(int i=0;i<keysize();i++){
if(keyget(i)equals(k)){
keyremove(i);
valueremove(i);
}
}
}
}
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();//你的list
//声明一个Map用于返回
Map<String,List<String>> map=new HashMap<String,List<String>>();
//循环你拿来的List
for(int i=0;i<listsize();i++){
Map<String,Object> m=listget(i);
for (String key:mkeySet()) {
List<String> l=mapget(key);
if(l!=null){
ladd((String)mget(key));
}else{
List<String> newL=new ArrayList<String>();
newLadd((String)mget(key));
mapput(key, newL);
}
}
}
return map;
注意下:你原来返回的List里装的事Object我强转了一下String,没放到工具里
以上就是关于list,map全部的内容,包括:list,map、List和ArrayList,Map和HashMap的区别、list集合不能保存多条map等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)