设计模式---迭代器模式
Posted 五行缺知识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式---迭代器模式相关的知识,希望对你有一定的参考价值。
package Iterator;
/**
* 迭代器接口
* @param <T>
*/
public interface MyIterator<T>
/**
* 是否还有下一个元素
* @return true 表示有,false 表示没有
*/
boolean hasNext();
/**
* 返回当前位置的元素并将位置移动到下一位
* @return
*/
T next();
package Iterator;
import java.util.ArrayList;
import java.util.List;
public class ConcreteIterator<T> implements MyIterator<T>
/**
* 模拟用一个 List
*/
private List<T> mList = new ArrayList<>();
private int cursor = 0;
public ConcreteIterator(List<T> list)
this.mList = list;
@Override
public boolean hasNext()
return cursor != mList.size();
@Override
public T next()
//定义一个临时变量
T obj = null;
if (this.hasNext())
obj = this.mList.get(cursor++);
return obj;
package Iterator;
public interface Aggregate<T>
/**
* 添加一个对象
* @param t
*/
void add(T t);
/**
* 删除的对象
* @param t
*/
void remove(T t);
/**
* 获取容器的迭代器
* @return
*/
MyIterator<T> iterator();
package Iterator;
import java.util.ArrayList;
import java.util.List;
public class ConcreteAggregate<T> implements Aggregate<T>
/**
* 模拟具体容器
*/
private List<T> mLists = new ArrayList<>();
@Override
public void add(T t)
mLists.add(t);
@Override
public void remove(T t)
mLists.remove(t);
@Override
public MyIterator<T> iterator()
return new ConcreteIterator<T>(mLists);
- myIterator: 迭代器接口。迭代器接口负责定义、访问和遍历元素的接口。
- Concrete Iterator: 具体迭代器类。具体迭代器类的目的主要是实现迭代器接口,并记录遍历的当前位置。
- Aggregate: 容器接口。容器接口负责提供创建具体迭代器角色的接口。
- Concrete Aggregate: 具体容器类。具体迭代器角色与该容器相关联。
本文来自博客园,作者:五行缺知识,转载请注明原文链接:https://www.cnblogs.com/wyw123456/p/15696506.html
以上是关于设计模式---迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章