这里有新鲜出炉的Java设计模式,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要帮助大家轻松掌握Java迭代器模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
特点:
1、它支持以不同的方式遍历一个聚合对象。
2、迭代器简化了聚合类。
3、在同一个聚合上可以有多个遍历。
4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。
企业级开发和常用框架中的应用:java集合都实现了迭代器
具体实例:
- public class Demo {
- public static void main(String[] args) {
- ActualContainer container = new ActualContainer();
- for (int i = 5; i < 20; i++) {
- container.add(i);
- }
- Iterator iterator = container.iterator();
- while (iterator.hasNext()) {
- System.out.println(iterator.next());
- }
- }
- }
- /**
- * 迭代器接口,包含有常用的迭代器方法
- */
- interface Iterator {
- public boolean hasNext();
- public Object next();
- }
- /**
- * 容器接口:包含有获取迭代器的方法
- */
- interface Container {
- public Iterator iterator();
- }
- /**
- * 具体实现类
- * @author jiaoyuyu
- *
- */
- class ActualContainer implements Container {
- private List < Object > list = new ArrayList < >();
- public void add(Object obj) {
- this.list.add(obj);
- }
- public void remove(Object obj) {
- this.list.remove(obj);
- }
- public Object get(int index) {
- if (index <= (this.list.size() - 1)) {
- return this.list.get(index);
- }
- return null;
- }
- public Iterator iterator() {
- return new ActualIterator();
- }
- private class ActualIterator implements Iterator {
- private int pointer = 0;
- public boolean hasNext() {
- return this.pointer < list.size() ? true: false;
- }
- public Object next() {
- if (this.pointer < list.size()) {
- Object obj = list.get(pointer);
- pointer++;
- return obj;
- }
- return null;
- }
- }
- }
迭代器模式属于比较简单的模式,主要用于遍历集合一类的对象。
来源: http://www.phperz.com/article/17/1119/359850.html