



CollectionIterator.java
package com.dym.collection_;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionIterator {
public static void main(String[] args) {
Collection col=new ArrayList();
col.add(new Book("三国演义","罗贯中",10.1));
col.add(new Book("小李飞刀","古龙",5.1));
col.add(new Book("红楼梦","曹雪芹",34.6));
//System.out.println("col="+col);
// 打印的结果
// col=[Book{name='三国演义', author='罗贯中', price=10.1}, Book{name='小李飞刀', author='古龙', price=5.1}, Book{name='红楼梦', author='曹雪芹', price=34.6}]
// 现在希望能够遍历 col 集合
// 1. 先得到col 对应的迭代器
Iterator iterator = col.iterator();
//2. 使用while循环遍历
while (iterator.hasNext()){ //判断是否还有数据
//返回下一个元素,类型是 object
Object obj = iterator.next();
System.out.println("obj="+obj);
}
//3. 当退出while循环后,这时 iterator迭代器,指向了最后的元素
// 此时再取元素,则会报异常 java.util.NoSuchElementException
/* Exception in thread "main" java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:864)
at com.dym.collection_.CollectionIterator.main(CollectionIterator.java:28)*/
//iterator.next();
//如果希望再次遍历,需要重置一下迭代器
iterator=col.iterator();
System.out.println("**********第二次遍历************************");
while (iterator.hasNext()){ //判断是否还有数据
//返回下一个元素,类型是 object
Object obj = iterator.next();
System.out.println("obj="+obj);
}
}
}
class Book{
private String name;
private String author;
private double price;
public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
