ホームページ  >  記事  >  Java  >  Java で Iterator パターンを実装する方法のコード例

Java で Iterator パターンを実装する方法のコード例

黄舟
黄舟オリジナル
2017-03-11 11:13:532010ブラウズ

クラス図


/**
 * 自定义集合接口, 类似java.util.Collection
 * 用于数据存储
 * @author stone
 *
 */
public interface ICollection<T> {
	
	IIterator<T> iterator(); //返回迭代器
	void add(T t);
	T get(int index);
}
/**
 * 自定义迭代器接口 类似于java.util.Iterator
 * 用于遍历集合类ICollection的数据
 * @author stone
 *
 */
public interface IIterator<T> {
	boolean hasNext();
	boolean hasPrevious();
	T next();
	T previous();
}
rreerree

印刷

/**
 * 集合类, 依赖于MyIterator
 * @author stone
 */
public class MyCollection<T> implements ICollection<T> {

	private T[] arys;
	private int index = -1;
	private int capacity = 5;
	
	public MyCollection() {
		this.arys = (T[]) new Object[capacity];
	}
	
	@Override
	public IIterator<T> iterator() {
		return new MyIterator<T>(this);
	}
	
	@Override
	public void add(T t) {
		index++;
		if (index == capacity) {
			capacity *= 2;
			this.arys = Arrays.copyOf(arys, capacity);
			
		}
		this.arys[index] = t;
	}
	
	@Override
	public T get(int index) {
		return this.arys[index];
	}
	
}

以上がJava で Iterator パターンを実装する方法のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。