迭代器遍历



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 +
                '}';
    }
}

猜你喜欢

转载自blog.csdn.net/qq_39368007/article/details/115267387