list,map

list,map,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10150228.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存