2021.10.05 - 112.顶端迭代器

1. 题目

在这里插入图片描述

2. 思路

(1) 迭代器

  • 实现简单的迭代器即可。

3. 代码

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        PeekingIterator<Integer> iterator = new PeekingIterator<Integer>(new ArrayList<Integer>() {
    
    {
    
    
            add(1);
            add(2);
            add(3);
        }}.iterator());
        System.out.println(iterator.next());
        System.out.println(iterator.peek());
        System.out.println(iterator.next());
    }
}

class PeekingIterator<T> implements Iterator<T> {
    
    
    private List<T> list;
    private int index;

    public PeekingIterator(Iterator<T> iterator) {
    
    
        list = new ArrayList<>();
        while (iterator.hasNext()) {
    
    
            list.add(iterator.next());
        }
        index = 0;
    }

    public T peek() {
    
    
        return list.get(index);
    }

    @Override
    public T next() {
    
    
        return list.get(index++);
    }

    @Override
    public boolean hasNext() {
    
    
        return index < list.size();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44021223/article/details/120617079