本帖最后由 依然超级赛亚人 于 2014-8-13 08:06 编辑
今天在做迭代器相关的练习时,我在用while遍历元素之后又在下面加了一个同样的while语句,结果没有看到我预想中的打印两次结果,而且编译和运行都没报错,就是没打印出两次结果,好像只执行了一个while。想了半天不知怎么回事,想在论坛中请教一下大家,如下面代码:
import java.util.*;
class IteratorTest02
{
public static void main(String[] args)
{
Person p1 = new Person("张三",28);
Person p2 = new Person("李四",35);
Person p3 = new Person("王五",38);
Person p4 = new Person("张三",28);
ArrayList<Person> array = new ArrayList<Person>();
array.add(p1);
array.add(p2);
array.add(p3);
array.add(p4);
Iterator<Person> it = array.iterator();
while(it.hasNext()){
sop(it.next());
}
//-------------------------------问题所在:又加了一个while语句,可是似乎没有执行...
while(it.hasNext()){
sop(it.next());
}
//-----------------------------------------------------
}
//定义了一个打印方法,可以打印各种类型的数据。
public static void sop(Object obj){
System.out.println(obj);
}
}
//自定义了一个Person类,因为它本身不像String类那样重写了toString()方法,所以我自己已经重写。
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;
}
//重写了toString()方法
public String toString() {
return ""+ name +"--"+age;
}
}
|
|