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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jim-剣◆﹏ 高级黑马   /  2013-10-15 21:26  /  1091 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jim-剣◆﹏ 于 2013-10-15 22:09 编辑

复习时重看视频,中说到用迭代器可用while(),也可用for(),国外对内存的管理比较严格,用for循环输出集合元素,但是毕老师说用while的话不能节约内存,因为在外面要定义一个Iterator对象,使用完毕还在内存
  1. for(Iterator it=ai.iterator();it.hasNext();)
  2.   {
  3.    System.out.println(it.next());
  4.   }
复制代码
  1. Iterator it = a1.iterator();
  2.                 while(it.hasNext())
  3.                 {
  4.                         System.out.println(it.next());
  5.                 }
复制代码


我能不能直接在把匿名对象建立在局部呢,这样也就使用完就移除内存了,还是说会有别的问题,能不能正确取出集合里的元素?
  1. while(a1.iterator().hasNext())
  2.   {
  3.    System.out.println(a1.iterator().next());
  4.   }
复制代码


评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

1 个回复

倒序浏览
本帖最后由 匡文 于 2013-10-15 21:38 编辑

你这样写不对的。你每循环一次,调用a1.iterator()时返回的都是不同的Iterator对象,这样根本就没法遍历。


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