用户工具


class Test implements Iterable<Integer>, Iterator<Integer> {

    int point = 0;
    
    // 实现Iterator接口
    public boolean hasNext() {
        return point == 5 ? false : true;
    }
    
    // 实现Iterator接口
    public Integer next() {
        point++;
        return point;
    }
    
    // 实现Iterator接口
    public void remove() {
        System.out.println("--");
    }

    // 实现Iterable接口
    public Iterator<Integer> iterator() {
        return new Test();
    }
    
    public static void main(String[] args) {
        Test test= new Test();
        for(Integer ob :test){  // 调用test.iterator函数
                                // 每次循环先调用ob.hasNext函数,如果为真,再调用next函
                                // 数,一切都是for循环自动完成
            System.out.println(ob);
        }
        
        // for封装了如下步骤,下面是自己控制迭代
        Iterator<Integer> itor = test.iterator();
        while (itor.hasNext()){
            System.out.println(itor.next());
        }
    }
}