import java.util.*;
class SoccerMember
{

private String name;
private int age;
SoccerMember(int age,String name)
{
this.name=name;
this.age=age;
}
String getName()
{
return name;
}
int getAge()
{
return age;
}
}class CollectionDemo
{
public static void main(String[] args) 
{

ArrayList al = new ArrayList();

al.add(new SoccerMember(25,"梅西"));
al.add( new SoccerMember(40,"齐达内"));
al.add( new SoccerMember(27,"C罗"));
for (Iterator it = al.iterator();it.hasNext(); )
{

System.out.println(it.next());
//System.out.println(it.next().getAge());//无法编译通过
}
/*
for (int i=0;i<al.size();i++ )
{
System.out.println(al.get(i));
}
*/

}
}
以下是问题:
1,以上将对象存入到al中,请问,如何取出每个元素中的getAge()方法?
2,注释掉的for循环和使用Iterator迭代器的for循环有相同的作用,请问,差别是什么?

解决方案 »

  1.   

    要把it.next()强制转换成SoccerMember那个for循环也可以遍历,取出来强转
      

  2.   

    System.out.println(SoccerMember.it.next());
    System.out.println(SockerMember.it.next().getAge());
      

  3.   

    多谢!存进去的是Object类型,这下明白了。
    不过这个代码:
    System.out.println(((SoccerMember)(it.next())).getAge());
    看起来一点都不性感,好繁琐
      

  4.   

    使用泛型就可以了
    ArrayList<SoccerMember> al = new ArrayList<SoccerMember>();
      

  5.   

    泛型加foreach好用,我喜欢这么用
      

  6.   

    ArrayList就像一个麻袋,<SoccerMember>就相当于麻袋上的标签