java – 如何实现这个FilteringIterator?
发布时间:2020-12-14 17:46:47 所属栏目:Java 来源:网络整理
导读:IObjectTest是一个接口 单一布尔测试(Object o)方法 FilteringIterator是Iterator的一个实现 用另一个迭代器初始化 和一个IObjectTest实例:new FilteringIterator(myIterator, MYTEST).你的FilteringIterator会 然后允许迭代 ‘myIterator’,但跳过任何 不
> IObjectTest是一个接口
单一布尔测试(Object o)方法 > FilteringIterator是Iterator的一个实现 用另一个迭代器初始化 和一个IObjectTest实例:new FilteringIterator(myIterator, MYTEST).你的FilteringIterator会 然后允许迭代 ‘myIterator’,但跳过任何 不通过的物体 ‘myTest’测试. 由于“hasNext”操作实际上涉及重复移动底层迭代器 解决方法
你需要使你的迭代器有状态.缓存从hasNext检索的最后一个值,并使用下一个方法(如果存在).
private boolean hasCached; private T cached; public boolean hasNext() { if ( hasCached ) return true; //iterate until you find one and set hasCached and cached } public T next() { if ( hasCached ) { hasCached = false; return cached; } //iterate until next matches } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |