【第22期】观点:IT 行业加班,到底有没有价值?

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

原创 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);
		}
		
	}

}


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

相关文章推荐

JDK 1.8 LinkedList中双向迭代器实现细节小记

在学习LinkedList源码时,发现对它的内部迭代器ListItr的实现有几个函数费了一番脑筋,记录下来供以后复习使用。这几个函数是next()、previous()以及remove()。 先把它...

助记符解决长而复杂的商品名称 C#判断字符串

有些商品的名称比较长,放到数据库中又记不住他的条形码,这给超市等一些储备商品的仓库带来了一定的烦恼,对某个商品进行盘点,因为这个商品名称很长输入浪费很长的时间,就让助记符帮你解决这个难题。 助记符是什么呢?就是根据输入的中文字符获取拼音的首字母。有人要问了,我的商品名称要是含有字母或数字怎么办?解...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

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

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

ListIterator 向前遍历和向后遍历

ListIterator 向前遍历和向后遍历     public class ListIteratorTst { public static void main(String[] args) { List&lt;Integer&gt; lis...
  • xmind
  • xmind
  • 2012-02-09 15:33
  • 534

产品分类页面得到当前分类ID,产品详细信息页面得到当前产品默认商店的的商品名称 ---NAME

1 产品详细信息页面得到当前产品默认商店的的商品名称 ---NAME,和链接 $storeId = Mage::app()-&gt;getStore()-&gt;getId(); if($storeId!=1){ $product = Mage::getModel('...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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