Map一个小疑点
Map一个小问题[解决办法]说白了,list.clear()是清空list对象中的值,而listnew ArrayListInteger()是将l
Map一个小问题
[解决办法]说白了,list.clear()是清空list对象中的值,而list=new ArrayList<Integer>()是将list变量指向新建的List对象,会覆盖list对象中的值,但不会清空已经入map里的list
[解决办法]楼主对java中的集合的引用理解不够,你map所put的那个list是指向第一个的ArrayList对象也就是map里面存的是这个对象的地址。list的引用也是指向这个ArrayList的,所以你用list.clear()等于清空了这个ArrayList的内容。那此时map在获取这个对象的时候里面自然是被清空了。你把list=new ArrayList();重新new一个ArrayList其实已经把list的引用指向另一个ArrayList的对象了但是map里面所放的仍然还是原来的ArrayList对象那个并没有改变所以里面的元素都在
[解决办法]+1
[解决办法]+1
[解决办法]很不错
[解决办法]不错
[解决办法]就是内存的问题了,list.clear();删除了内存里面的数据。
[解决办法]...看看内存解析
[解决办法]list = new ArrayList<Integer>(); 这句话的意思是将引用变量list指向另外的地址,原来地址的里面的值并没有发生改变,而list.clear()是将原来地址里的值给clear 了
[解决办法]就是内存中存储的问题。对list第二次赋值的时候,注意,这个地方是对list引用的地址做了更改,指向了新的地址。原来的还在原来的地址上。clear方法调用的时候,是在原地址上操作,map引用这块地址存储一部分值也会被清空。
[解决办法]这个是对象指向问题 list指向新的ArrayList了 已经不再指向原来的对象