例解使用List < Map < String,Object > > 存储对象的问题剖析

一、遇到的问题

       在使用List>存放值的时候存储错误。

二、问题代码展示:

1.问题代码:

例解使用List < Map < String,Object > > 存储对象的问题剖析_第1张图片

2.正确代码:

例解使用List < Map < String,Object > > 存储对象的问题剖析_第2张图片

  三、错误输出结果:

1.错误结果:

2.正确结果:

四、问题分析:

1.错误代码:List>里面存放的是map对象的地址,尽管循环了六次,但map存储的是对象对应的都是同一个地址,即listMap里存放的是五个同样的map对象。

例解使用List < Map < String,Object > > 存储对象的问题剖析_第3张图片

2.正确代码:List>里面存放的是map对象的地址,每次循环都会实例化一个新的map对象,这样list在add的时候存储的不同的map对象。

例解使用List < Map < String,Object > > 存储对象的问题剖析_第4张图片    

五、问题总结:

     通过上面的代码我们可以看到,我们在创建不同的map对象的时候,要将map放在循环里创建,因为List>指向的是map对象地址。

你可能感兴趣的:(工作中遇到的问题)