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

原创 2016年06月01日 15:29:51

要求:

某商品管理系统的商品名称存储在一个字符串数组中,现在需要自定义一个双向迭代器(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 stub
		ProductList 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);
		}
		
	}

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

STL之双向链表及其迭代器简单实现

最近在看STL,试着写一个自己的链表模板,与STL相比没有使用空间配置器,方法也只实现了几个简单的插入删除元素。但是理清了容器、迭代器之间的关系。代码及测试用例如下。list_test.h文件 # i...

搜索二叉树实现->迭代器实现->转化为双向链表

二叉搜索树

oracle正则表达式----通过解析商品名称学习

1.oracle 正则统配符号 '^'     匹配开始位置,注:方括号内表示否的意思。 '$'    匹配结尾位置 '.'    匹配除换行符 \n之外的任何单字符。 &...

Python爬虫学习之抓取商品名称和价格

看到网上有可以查看商城历史价格的网站,有时候查查某件想买的商品是不是历史最低价,还是蛮有用的。用了几次后就想着这种网站的功能是怎么实现的,那就是使用爬虫技术,定时爬取这些商城的商品价格,然后保存到数据...

C语言实现面向对象风格带迭代器的双向链表

首先看main函数中双向链表的用法: #include #include #include "dlist.h" int main(void) { LinkedList* list = ne...

【C++/STL】list的实现(没有采用迭代器和空间配置器所实现的双向链表的基本功能)

#include using namespace std; //没有采用迭代器和空间配置器所实现的双向链表的基本功能 template ...

双向循环链表——STL迭代器

“test.cpp” #define _CRT_SECURE_NO_WARNINGS 1 #include using namespace std; template struct ListNod...

python抓取京东商城的商品名称和价格

突然心血来潮想抓一个京东的商品价格,突然发现网页的源码里没有价格这一项,只有商品的编号,网上说是显示的同事js从数据库里取出商品价格,放在页面上,那么我只能模拟请求了。哇咔咔,记得去你给京东投简历之后...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)