ifconfigapp 2010-04-05 16:36
浏览 262
已采纳

Iterator接口的一点小问题(TP)

[code="java"]public class TestIterator {
public static void main(String[] args) {
Collection c = new HashSet();
c.add(new Cat("mimi"));
c.add(new Cat("miaomiao"));
c.add(new Cat("wowo"));

    Iterator i = c.iterator();
    while(i.hasNext()) {
      Cat cat = (Cat)i.next();
      if(cat.getName().length() > 4) {
        i.remove();                 
      } 
      System.out.print(cat.getName() + " ");
    }
            System.out.println(c.size());
     }

}[/code]

请问下该接口的remove方法原理, 我明明删除了第二个对象, 为何全部遍历出来了, 而且结果又显示2呢 ?
真心求教.

  • 写回答

2条回答 默认 最新

  • xenocide 2010-04-05 20:39
    关注

    打个比方说,c 是个袋子,里面装着 3 只猫,你用 iterator 的 remove 方法把其中的一只叫 miaomiao 的取了出来,结果 c 里面还剩两只猫。

    remove 方法删除的是袋子和 miaomiao 之间的关系,而不是 miaomiao 本身。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站