要求:

某商品管理系统的商品名称存储在一个字符串数组中,现在需要自定义一个双向迭代器(DIterator)实现对该商品名称数组的双向(向前和向后)遍历。

代码:

public interface Iterator {public boolean hasNext();public Object Next();
}
public interface Product {public Iterator getIterator();
}
public class ProductList implements Product{public String names[]={"Apple","Banana","Pear","Melons","Peach"};public Iterator getIterator(){return new NameIterator();}public Iterator getIterator0(){return new NameIterator0();}public class NameIterator implements Iterator{int index;public boolean hasNext(){if(index<names.length){return true;}return false;}public Object Next(){if(this.hasNext()){return names[index++];}return null;}    }public class NameIterator0 implements Iterator{int flag=names.length-1;public boolean hasNext(){if(flag>-1){return true;}return false;}public Object Next(){if(this.hasNext()){return names[flag--];}return null;}}}
public class IteratorPatternDemo {public static void main(String[] args) {// TODO Auto-generated method stubProductList productlist = new ProductList();System.out.println("向后遍历:");for(Iterator ite = productlist.getIterator();ite.hasNext();){String name = (String)ite.Next();System.out.println("Name :"+name);}System.out.println("向前遍历:");for(Iterator ite = productlist.getIterator0();ite.hasNext();){String name = (String)ite.Next();System.out.println("Name :"+name);}}}

双向迭代器实现对该商品名称数组的双向(向前和向后)遍历。相关推荐

  1. 用动态数组模拟双向循环链表

    简单来说其实使用数组模拟LinkedList.同LinkedList的操作基本相似.  基本原理为:数组存放Entry对象,包含数据部分,指针部分(数组下标)  添加,删除基本操作改变指针.数组包含两 ...

  2. 2 STL迭代器介绍【前向迭代器、双向迭代器、随机访问迭代器】【迭代器遍历容器】

    文章目录 0 - 前言 1 - 迭代器定义 2 - 迭代器分类 3 - 迭代器使用 0 - 前言 参考:http://c.biancheng.net/view/6675.html 1 - 迭代器定义 ...

  3. C++(标准库):26---STL迭代器之(迭代器的5大种类(输出迭代器、输入迭代器、向前迭代器、双向迭代器、随机访问迭代器))

    一.迭代器的头文件 所有的容器都定义有自己的iterator类型,因此如果单单使用容器,只需要包含对应容器的头文件即可 不过有些特殊的iterator,被定义在头文件<iterator>中 ...

  4. listIterator迭代器实现向前向后遍历

    我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(跌代器).  使用跌代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了.但是在使 ...

  5. php 回调递归,PHP数组函数 array_walk_recursive (使用回调函数递归遍历数组元素)

    在PHP中,数组函数 array_walk_recursive () 使用回调函数递归遍历数组元素. 函数语法:array_walk_recursive ( array &$array , c ...

  6. Console-算法[]-数组求最大值和最小值(只能遍历一次)

    ylbtech-Arithmetic:Console-算法[]-数组求最大值和最小值(只能遍历一次) 1.A,Demo(案例) Console-算法[]-数组求最大值和最小值(只能遍历一次) 1.B, ...

  7. 【小米校招笔试】一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置

    2016年小米校招笔试第二题(西安站) 2 现有一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置(如1234568,向右移动3次后为67812345). 参考解法(Java版 ...

  8. python 数组排序索引_python对数组进行排序,并输出排序后对应的索引值方式

    python对数组进行排序,并输出排序后对应的索引值方式 废话不多说,直接上代码吧! # -*- coding: cp936 -*- import numpy as np #一维数组排序 arr = ...

  9. C语言,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

    C语言,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 代码: #include <stdio.h> int main() {int a[11]={1,2,3,4, ...

最新文章

  1. 遍历json数组的常用方式
  2. 0226互联网新闻 | “多闪”上线首月iOS下载量超过500万;阿里云MWC 2019发布7款新产品...
  3. Zookeeper的一致性是什么情况?
  4. cultureinfo 类 java_System.Globalization.CultureInfo.cs(示例代码)
  5. 优化搜索排序结果从而“ 提升CTR、CVR业务指标”
  6. html做预约人数显示,添加预约用户.html
  7. detachedcriteria查询去重_sql的简单查询
  8. POJ3342 Party at Hali-Bula(树型DP求最大独立集+唯一解判断)
  9. 视觉里程计07 Qt的一些bug修改记录
  10. ScrollView详解
  11. 环保数采仪助力绿水青山建设
  12. watch监听和computed计算属性的使用和区别
  13. PHP 验证码无法显示的问题
  14. java游戏开发入门(十) -粒子特效
  15. 可视化实例(三)Tableau基础绘图介绍——横向条形图、双轴折线图、直方图
  16. Android引用ttf图标字体库
  17. DBCO-PEG-NHS,NHS-PEG-DBCO,二苯并环辛炔-聚乙二醇-活性酯,DBCO-PEG衍生物
  18. 企业如何做好电子邮件营销?做好这4点,客户回头率高!
  19. python去掉数字最后的零_结尾0的个数Python
  20. 疫情过后,哪些互联网行业将迎来发展机遇

热门文章

  1. mac系统+frida 简单测试真机or genymotion模拟器
  2. excel只显示公式,不显示结果
  3. 大数据常用非关系型数据库汇总(NoSQL)
  4. 关于SASE与安全市场的那些事
  5. Docker Swarm 练习:投票 App
  6. 欧盟授权代表EU Representative是什么?
  7. ecs卸载mysql_阿里云ECS卸载安骑士(阿里云盾)
  8. Ubuntu 11.10安装QQ2012
  9. mac升级node版本(用n升级nodejs)
  10. 基于mindwave脑电波进行疲劳检测算法的设计(3)