java的List<Map>用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的List<Map>用法相关的知识,希望对你有一定的参考价值。

使用List<Map>建立一个简单的学生信息库(学号、姓名、性别信息)。
返回所有所生信息。

//存放所有学生信息
List<Map<String,Object>> listStudentInfo=new ArrayList<Map<String,Object>>();
//定义学生1的一些属性

Map<String,Object> stu1=new HashMap<String, Object>();
stu1.put("sId", 111);//学号
stu1.put("sName", "张三");//姓名
stu1.put("sSex", "男");//性别
listStudentInfo.add(stu1);

//定义学生2的一些属性
Map<String,Object> stu2=new HashMap<String, Object>();
stu2.put("sId", 112);//学号
stu2.put("sName", "李四");//姓名
stu2.put("sSex", "女");//性别
listStudentInfo.add(stu2);
//得到所有学生信息
for( Map<String,Object> stu:listStudentInfo)

System.out.println("学号:"+stu.get("sId")+" 姓名:"+stu.get("sName")+" 性别:"+stu.get("sSex"));
参考技术A List<Map> list=new ArrayList<>();
for(int i=0;i<10;i++)

Map<String, String> map=new HashMap<>();
map.put("name", "zhangShang"+i);
map.put("age", String.valueOf(15+i));
list.add(map);

代码如上就是这么简单
参考技术B List<Map<String,Object>> stuList=new ArrayList<>();
Map<String,Object> stu1=new HashMap<>();
stu1.put("name","zhangsan");
stu1.put("age",18);
stu1.put("sex","男");
stuList.add(stu1);
Map<String,Object> stu2=new HashMap<>();
stu1.put("name","jack");
stu1.put("age",19);
stu1.put("sex","女");
stuList.add(stu2);

java List<map>赋值的问题

public String treatmentstatistics(@RequestParam(value = "eplanid") String eplanid,Model model)

// 由风险评估计划名称查询风险事件和风险应对计划名称
List<Map<String, String>> finishMapList = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("key", "A");
map.put("key", "A");
finishMapList.add(map);

map.put("key", "B");
map.put("key", "B");
finishMapList.add(map);
model.addAttribute("finishMapList", finishMapList);
return "rm/riskmanager/isfinishtreatment";


我的想法是list中有两个map,分别存
<key,A><key,A>和<key,B><key,B>,
但是实际却存的是
<key,B><key,B>和<key,B><key,key>
都存成后一个了。

List<Map<String, String>> finishMapList = new ArrayList<Map<String, String>>();
        Map<String, String> map = new HashMap<String, String>();
        map.put("key", "A");
        map.put("key", "A");
        finishMapList.add(map);
        
        map = new HashMap<String, String>(); //map要重新new不然还是上一个map
        map.put("key", "B");
        map.put("key", "B");
        finishMapList.add(map);
        model.addAttribute("finishMapList", finishMapList);
        return "rm/riskmanager/isfinishtreatment";
        
    

map要重新new不然还是上一个map.

map.put("key", "B");其实是在修改map中的内容不是新的

不知道这样说你明不明白

不明白就继续问吧

参考技术A map是key/value的形式存数据的,你把所有的key都设成'key',那么先存的数据就被后面的覆盖了 参考技术B 中间少了一句,map = new HashMap<String, String>()
map.put(key B);
参考技术C 你需要重新new一个Map来保存B
Map<String, String> map1 = new HashMap<String, String>();
map.put("key", "A");
map.put("key", "A");
finishMapList.add(map);
Map<String, String> map2 = new HashMap<String, String>();
map.put("key", "B");
map.put("key", "B");
finishMapList.add(map);
参考技术D map.put("key", "A");

键名一样被覆盖了
第5个回答  2014-09-17 Map集合是根据key 去存储数据的 所以当它们key 相同时是存储最新的一个 你可以使用list 或多new几个Map 集合去存储

以上是关于java的List<Map>用法的主要内容,如果未能解决你的问题,请参考以下文章

java8 stream().map().collect()用法

Mybatis的map用法

java List<map>赋值的问题

java中map put方法的问题

java8 stream的用法总结

java8 stream的用法总结