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();
}
}