本帖最后由 王璐 于 2012-6-18 19:17 编辑
- import java.util.*;
- class Person
- {
- private String name;
- private int age;
- Person(String name ,int age)
- {
- this.name=name;
- this.age=age;
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- }
- class ArrayListTest2
- {
- public static void main(String[] args)
- {
- ArrayList al=new ArrayList();
- al.add(new Person("lisi01",30));
- al.add(new Person("lisi02",32));
- al.add(new Person("lisi03",33));
- al.add(new Person("lisi04",34));
- al.add(new Person("lisi05",35));
- Iterator it=al.iterator();
- while(it.hasNext())
- {
- //Person p=(Person)it.next();
- //sop(p.getName()+"::"+p.getAge());
- sop(((Person)it.next()).getName()+"::"+((Person)it.next()).getAge());
- }
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
- (代码已整理完整)
- 问题1. sop(p.getName()+"::"+p.getAge()); //这里用了两次it.next(),next()为什么没有两次指向下一个元素,却打印了对象中成员?
- 问题2. sop(it.next().getName()+"::"+it.next().getAge()); //假如it.next()的返回类型是Person ,这条语句会打印一个元素中的两个成员吗?next()指向几次集合中元素?
-
- 问题3. sop(((Person)it.next()).getName()+"::"+((Person)it.next()).getAge()); //it.next()的返回类型是Object,强制转换下,出现没有“没有这个元素异常”,
- it.next()指向了两次,为什么不能在问题1中的语句中直接转换类型?
复制代码 |
|