Java 设计模式 之 迭代器模式

http://www.verejava.com/?id=16999127808571

package com.iterator.theory;

import java.util.Arrays;

public class TestIterator
{
	public static void main(String[] args)
	{
		List list=new ArrayList();
		list.add("李阳");
		list.add("王涛");
		list.add("张飒");
		
		Iterator iter=list.iterator();
		while(iter.hasNext())
		{
			Object obj=iter.next();
			System.out.println(obj);
		}

	}
}





package com.iterator.theory;

public interface Iterator
{
	public boolean hasNext();
	
	public Object next();
}





package com.iterator.theory;

public class IteratorImpl implements Iterator
{
	private int index;
	private List list;
	
	public IteratorImpl(List list)
	{
		this.list=list;
	}

	@Override
	public boolean hasNext()
	{
		return index<list.size();
	}

	@Override
	public Object next()
	{
		Object element=null;
		if(index<list.size())
		{
			element=list.get(index);
			index++;
		}
		
		return element ;
	}

}





package com.iterator.theory;

public interface List
{
	public void add(Object element);
	
	public Object get(int index);
	
	public int size();
	
	public Iterator iterator();
}





package com.iterator.theory;

import java.util.Arrays;

public class ArrayList implements List
{
	private int initCapacit=20;
	private int size;
	private Object[] elementData;
	
	public ArrayList()
	{
		elementData=new Object[initCapacit];
	}

	@Override
	public void add(Object element)
	{
		if(size<initCapacit)
		{
			elementData[size]=element;
			size++;
		}
		else
		{
			elementData=Arrays.copyOf(elementData, size);
			elementData[size]=element;
			size++;
		}
	}

	
	@Override
	public Object get(int index)
	{
		return elementData[index];
	}

	@Override
	public int size()
	{
		return size;
	}

	@Override
	public Iterator iterator()
	{
		return new IteratorImpl(this);
	}

}


http://www.verejava.com/?id=16999127808571

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值