A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.*;

  2. class  ListDemo2
  3. {     
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList al = new ArrayList();
  7.                 //添加元素
  8.                 al.add("java01");
  9.                 al.add("java02");
  10.                 al.add("java03");

  11.          sop(al);

  12.                 ListIterator li = al.listIterator();

  13.                 while(li.hasNext())
  14.                 {
  15.                         Object obj = li.next();

  16.                         if(obj.equals("java02"))
  17.                                
  18.                                 li.remove();

  19.                                 sop("obj="+obj);//这个为什么移除了还打印所有?
  20.                                                                 //object指向02,
  21.                                                                 //remove移除了元素的引用,元素还在内存当中。
  22.                                                                 //元素还被object使用,所以被打印。
  23.                 }
  24.                         sop("al="+al);
  25.         }

  26.                 public static void sop(Object obj)
  27.                 {
  28.                         System.out.println(obj);
  29.                 }

  30. }

复制代码
帮忙分析一下内存。。。谢谢。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

3 个回复

倒序浏览
晕倒,没有人来帮忙吗?
回复 使用道具 举报
    List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行sop("obj="+obj),刚刚移过来的元素没有被读取,则List读的还是内存中将要移走的值。
23.                                li.remove();
25.                                sop("obj="+obj);//这个为什么移除了还打印所有?
26.                                                                //object指向02,
27.                                                                //remove移除了元素的引用,元素还在内存当中。
28.                                                                //元素还被object使用,所以被打印。
29.                }

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 冯海霞 于 2013-1-16 11:01 编辑

详细画了一个图,画了很乱,还望谅解,LZ应该很容易理解了



评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马