大气微电影类网站织梦模板完整版,苏州做网站设计,企业建站系统还有没有前景可言,html网页制作实验报告请你在设计一个迭代器#xff0c;在集成现有迭代器拥有的 hasNext 和 next 操作的基础上#xff0c;还额外支持 peek 操作。
实现 PeekingIterator 类#xff1a;
PeekingIterator(Iterator nums) 使用指定整数迭代器 nums 初始化迭代器。 int next() 返回数组中的下一个元…请你在设计一个迭代器在集成现有迭代器拥有的 hasNext 和 next 操作的基础上还额外支持 peek 操作。
实现 PeekingIterator 类
PeekingIterator(Iterator nums) 使用指定整数迭代器 nums 初始化迭代器。 int next() 返回数组中的下一个元素并将指针移动到下个元素处。 bool hasNext() 如果数组中存在下一个元素返回 true 否则返回 false 。 int peek() 返回数组中的下一个元素但 不 移动指针。 注意每种语言可能有不同的构造函数和迭代器 Iterator但均支持 int next() 和 boolean hasNext() 函数。
示例 1
输入 [“PeekingIterator”, “next”, “peek”, “next”, “next”, “hasNext”] [[[1, 2, 3]], [], [], [], [], []] 输出 [null, 1, 2, 2, 3, false]
解释 PeekingIterator peekingIterator new PeekingIterator([1, 2, 3]); // [1,2,3] peekingIterator.next(); // 返回 1 指针移动到下一个元素 [1,2,3] peekingIterator.peek(); // 返回 2 指针未发生移动 [1,2,3] peekingIterator.next(); // 返回 2 指针移动到下一个元素 [1,2,3] peekingIterator.next(); // 返回 3 指针移动到下一个元素 [1,2,3] peekingIterator.hasNext(); // 返回 False
解
class PeekingIterator implements IteratorInteger {public static void main(String[] args) {ListInteger list Arrays.asList(1, 2, 3);IteratorInteger iterator list.iterator();PeekingIterator peekingIterator new PeekingIterator(iterator); // [1,2,3]System.out.println(peekingIterator.next()); // 返回 1 指针移动到下一个元素 [1,2,3]System.out.println(peekingIterator.peek()); // 返回 2 指针未发生移动 [1,2,3]System.out.println(peekingIterator.next()); // 返回 2 指针移动到下一个元素 [1,2,3]System.out.println(peekingIterator.next()); // 返回 3 指针移动到下一个元素 [1,2,3]System.out.println(peekingIterator.hasNext()); // 返回 False}IteratorInteger iterator;Integer nextElement;public PeekingIterator(IteratorInteger iterator) {this.iterator iterator;nextElement iterator.next();}// Returns the next element in the iteration without advancing the iterator.public Integer peek() {return this.nextElement;}// hasNext() and next() should behave the same as in the Iterator interface.// Override them if needed.Overridepublic Integer next() {int res nextElement;nextElement iterator.hasNext() ? iterator.next() : null;return res;}Overridepublic boolean hasNext() {return nextElement ! null;}
}