黑马程序员技术交流社区

标题: 关于迭代器的问题 [打印本页]

作者: 蓝枫    时间: 2014-3-29 20:55
标题: 关于迭代器的问题
  1. import java.util.*;
  2. class ListDemo
  3. {
  4.         public static void sop(Object obj)
  5.         {
  6.                 System.out.println(obj);
  7.         }

  8.         public static void main(String[] args)
  9.         {
  10.                 //演示列表迭代器
  11.                 ArrayList a1 = new ArrayList();

  12.                 //添加元素
  13.                 a1.add("java01");
  14.         a1.add("java02");
  15.         a1.add("java03");

  16.                 //在迭代过程中,准备添加或删除元素
  17.                         Iterator it =a1.iterator();
  18.                         while(it.hasNext())
  19.                 {
  20.                         Object obj=it.next();//这个地方为什么用Object obj,不太明白!可以帮忙解释一下吗?
  21.                         if(obj.equals("java02"))
  22.                                 it.remove();
  23.                                 sop("obj="+obj);
  24.                
  25.                 }
  26.                 sop(a1);
  27.            }
  28. }
复制代码


Object obj=it.next();//这个地方为什么用Object obj,不太明白!可以帮忙解释一下吗?

作者: Up↑Lee↗    时间: 2014-3-29 22:33
本帖最后由 Up↑Lee↗ 于 2014-3-29 22:40 编辑

因为你所蒋传进来的对象的类型是不确定的,所以采用父类应用,选择Object作为父类,理解为多态!用毕老师的话就是他是上帝,可以接受所有子类对象
作者: ╰つ    时间: 2014-3-29 22:39
集合即可以存String,对象...... 因为迭代的时候,不知道它的具体类型是什么,所以要使用object
作者: 安辉林    时间: 2014-3-29 22:40
因为你的集合没有指定数据类型,所以用父类Object来接收,如果你在定义集合的时候定义了泛型,如:ArrayList<String> a1 = new ArrayList<String>(); 那么就可以直接用String 类型来接收了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2