Suppose you have a Iterator class with has_next()
and get_next()
methods.
Please design and implement a PeekIterator class as a wrapper of Iterator and provide a peek()
method.
When calling peek()
, the user will only get the current element without moving forward the iterator.
Note: For Java solution we will use JDK's Iterator class, so the methods would be hasNext()
and next()
.
public class PeekIterator { Iterator it; Integer top; public PeekIterator(Iterator it) { this.it = it; } public int peek() { if(top == null) top = (Integer)it.next(); return top; } public boolean has_next() { return top != null ? true : it.hasNext(); } public int get_next() { Integer val = top; if(val == null) val = (Integer)it.next(); top = null; return val; } }
相关推荐
java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf
c++ 的array源码分析和reverse-iterator和-Array-const-iterator类
开源项目-json-iterator-go.zip,jsoniter is now 100% compatible with json.Marshal and json.Unmarshal
迭代器与枚举有两点不同:1. 迭代器允许调用者利用定义良好的语义在迭代期间,从迭代器所指向的 collection 移除元素2. 优化方法名其接口定义如下:Ob
json iterator (jsoniter) -速度比DOM快,比SAX或StAX更有用
Laravel开发-multi-level-array-iterator 提供了一种在任意深度的嵌套数组之间循环的方法
开源项目-thrift-iterator-go.zip,decode/encode thrift message without IDL
前端开源库-async-iterator-allAsyncIterator All,从异步迭代器收集所有值,并将其作为数组返回
谷歌北美面试题迭代部分内容整理,面试准备参考
面向对象程序设计英文教学课件:14-Design-Iterator.pptx
js代码-模拟 Iterator 遍历器
与--harmony-async-iterator标志一起使用 可以与 IxJS 一起使用 支持自定义承诺 包括打字稿定义 用法 安装 npm install --save lines-async-iterator # or yarn add lines-async-iterator 示例 1(基本) const ...
Triangular类,包含对Triangular类的提领操作Triangular_iterator类,以及异常类iterator_overflow。 输入输出样例为: (3,6) Triangular Series of 6 elements 6 10 15 21 28 36
分析-Iterator-base12与-Container-base12
安装 ... composer require phpunit/php-file-iterator 如果仅在开发过程中需要此库(例如,运行项目的测试套件),则应将其添加为开发时依赖项: composer require --dev phpunit/php-file-iterator
var iterator = require ( 'partition-refinement-iterator' ) ; var iterate = iterator ( Number ( process . argv [ 2 ] ) ) ; while ( true ) { var n = iterate ( ) ; if ( typeof n == 'undefined' ) break ...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装