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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝枫 中级黑马   /  2014-3-29 20:55  /  991 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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,不太明白!可以帮忙解释一下吗?

3 个回复

正序浏览
因为你的集合没有指定数据类型,所以用父类Object来接收,如果你在定义集合的时候定义了泛型,如:ArrayList<String> a1 = new ArrayList<String>(); 那么就可以直接用String 类型来接收了
回复 使用道具 举报
集合即可以存String,对象...... 因为迭代的时候,不知道它的具体类型是什么,所以要使用object
回复 使用道具 举报
本帖最后由 Up↑Lee↗ 于 2014-3-29 22:40 编辑

因为你所蒋传进来的对象的类型是不确定的,所以采用父类应用,选择Object作为父类,理解为多态!用毕老师的话就是他是上帝,可以接受所有子类对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马