背景
需要从数据库循环取值放在Map里面返回给前端的时候,
这样查出来的map的值都被覆盖了,如下
大家都知道,Map 的 key 值一样,会覆盖上次的相同 key 的 value 值,在一番思考后,做出以下改变,如图,
通过debug可以看到,从而分析得知
new HashMap(),会在内存中给我分配一个对象内存;
map,仅仅只是一个对象的引用,指向给 new HashMap() 分配的内存相当于 new HashMap() 的别名,第一张图只是new了一次,通过改变当我们把 new 操作放到 for 循环里面就正常了,因为每次操作的都是不同的内存地址。这样就拿到我们需要的结果了。
xd们可以自己debug看看效果哦!
总结
对于 Map 这是一个在项目中很常见,面试中很频繁的知识点,希望能帮到各位兄弟们。
主要涉及两个 Java基础知识点:
- new 操作具体含义
- map key 值相同