import java.util.*;
class User
{
private String username;
public void setUsername(String username)
{
this.username=username;
}
public String getUsername()
{
return username;
}

}
class Age
{
private int age;
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
}
public class TestIterator
{
public static void main(String[] args)
{
ArrayList l=new ArrayList();
User user=new User();
Age age=new Age();
for(int i=0;i<10;i++)
{
user.setUsername("happy");
age.setAge(23);
l.add(user);
l.add(age); }
Iterator iterator=l.iterator();
while(iterator.hasNext())
{
Object[] o=(Object[])iterator.next();
}

}
}

解决方案 »

  1.   

    用Object就行,别Object[]
    另外你ArrayList里面不建议添加不同实体的东西!
    你可以考虑把userName,age放到一个实体里!
      

  2.   

    楼上说的正确,我看你应该建一个Person对象,里面有属性username,age........这些都是人的某一属性,JAVA是面向对象的,我们要从现实出发。万物皆对象,你看这个“物”字,你说年龄是“物”吗,名子是“物”吗,显然不是。
    Object[] o=(Object[])iterator.next();
    如果你非要向你自己那样写就得改一下:
    Object o=iterator.next();
    if(o instanceof Age){
       System.out.println(((Age)o).getAge());
    }
    这样才行
      

  3.   

    if(o instanceof Age){ 
       System.out.println(((Age)o).getAge()); 

    这样啊,你得判断他的类型,要么你所放的对象都有一个超类或继承同一接口,对他们的父类或所实现的接口操作。
    比如你放到List里的是一个TreeSet还有一个HashSet,它们都实现了Set接口。那么你就操作Set如:
    List l=new ArrayList();
    l.add(new TreeSet());
    l.add(new HashSet());
    ......
    Set set=l.get(i);
    或者:
    Object o=l.get(i);
    if(o instanceof TreeSet){//.....}
    else if(o instanceof HashSet){//.....}
      

  4.   

    那就要instanceof了
    不过不建议那样做!
      

  5.   

    import java.util.LinkedList;class MyList {
    public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<String>();
    list.add("one ");
    list.add("two ");
    list.add("three ");
    Object[] sa = new String[3];
    // insert code here
    sa = (Object[]) list.toArray();
    for (Object s : sa){
    if(s instanceof String){
    System.out.print(s);
    }
    }
    }
    }