当前位置: 首页 > news >正文

中小企业还需要网站吗信息流优化师培训机构

中小企业还需要网站吗,信息流优化师培训机构,登不上建设银行网站,云南省建设厅勘察设计处网站15.迭代器模式 定义:我们可以用相同的方式处理集合,无论它是列表还是数组,它都提供了一种迭代其元素而不用暴露其内部结构的机制,更重要的是,不同的类型的集合都可以使用相同的统一机制,这种机制则被称为 …

15.迭代器模式

定义:我们可以用相同的方式处理集合,无论它是列表还是数组,它都提供了一种迭代其元素而不用暴露其内部结构的机制,更重要的是,不同的类型的集合都可以使用相同的统一机制,这种机制则被称为 迭代器模式。
目的:提供一种顺序遍历聚合对象元素,而不暴露其内部实现的方法。
主要角色

  • Aggregate(抽象容器):负责提供创建具体迭代器角色的接口,对应于java.util.Collection接口。
  • Iterator(抽象迭代器):迭代器的抽象类,它定义遍历容器对象的操作以及返回对象的操作
  • ConcreteAggregate(具体容器):主要是可以实现内部不同的结构。但会暴露处理遍历容器的具体迭代器。
  • ConcreteIterator(具体迭代器):处理特定的具体容器类的具体迭代器,实际上对于每个容器具体容器,都必须实现一个具体的迭代器。

一、先是创建抽象容器,定义几个基本添加删除元素方法,以及迭代器

public interface Aggregate {// 添加元素void add(Object object);// 移除元素void remove(Object object);// 迭代器Iterator iterator();
}

二、创建抽象迭代器,遍历容器中的数据

public interface Iterator<E> {// 判断容器是否有值boolean hasNext();// 把游标执向下一个指针void next();// 当前遍历的数据E currentItem();
}

三、开始定义我们具体的容器了,内部定一个ArrayList容器,用来存放数据,当然这里大家也可以改成其他的容器 比如说用Vector 或者其他的 栈、树、图等

@NoArgsConstructor
@AllArgsConstructor
@Data
public class ConcreteAggregate implements Aggregate {private ArrayList arrayList = new ArrayList();@Overridepublic void add(Object object) {this.arrayList.add(object);}@Overridepublic void remove(Object object) {this.arrayList.remove(object);}@Overridepublic Iterator iterator() {return new ConcreteIterator(this.arrayList);}
}

四、就是实现具体的迭代器了

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ConcreteIterator<T> implements Iterator<T> {private int cursor; // 游标private ArrayList arrayList;@Overridepublic boolean hasNext() {return this.cursor != arrayList.size();}@Overridepublic void next() {cursor++;System.out.println("cursor = " + cursor);}@Overridepublic T currentItem() {if (cursor>=arrayList.size()){throw new NoSuchElementException();}T t =(T) arrayList.get(cursor);this.next();return t;}
}

五、迭代器测试

public class IteratorTest {public static void main(String[] args) {Aggregate aggregate = new ConcreteAggregate();aggregate.add("java");aggregate.add("c++");aggregate.add("php");aggregate.add("jsp");Iterator iterator = aggregate.iterator();while (iterator.hasNext()){System.out.println(iterator.currentItem());}}
}
http://www.zhongyajixie.com/news/17727.html

相关文章:

  • 经典重庆网站重庆电子商务seo
  • 茶山做网站网站优化技巧
  • 网站建设技术哪些方面优化培训方式
  • 网站建设计划书公司的网站
  • 衡水网站制作与推广seo文章代写一篇多少钱
  • 做影视网站如何加速东莞全网营销推广
  • 怎样做类似淘宝网的网站整站排名服务
  • 江苏国龙翔建设网站需要优化的网站有哪些
  • 百川互联aso优化贴吧
  • 学校网站开发程序百度首页排名优化平台
  • 装修队伍做网站百度seo排名技术必不可少
  • 查询网站是否备案seo关键词优化费用
  • 站长平台如何推广自己的网站网站一年了百度不收录
  • 合肥做网站cnfg自己怎么创建网站
  • 大连做网站billionseo亚洲长尾关键词挖掘
  • 网站建设昆明网络公司宁波正规优化seo价格
  • 绵阳建设工程信息网站汕头网站建设方案维护
  • 重庆网站制作技术广告联盟官网入口
  • 网站怎么盈利的网络营销成功案例分析
  • 网站建设公司落寞网站排名在线优化工具
  • 制作灯笼英语网络seo推广培训
  • 网站关键词分布情况北京搜索关键词优化
  • windows 2008 iis添加网站网址查询域名解析
  • 可以免费发布信息的网站有哪些seo人才招聘
  • 用ps个人网站怎么做少儿编程
  • 网站如何做301重定向网络推广宣传方式
  • 深圳顶级做网站公司如何发布视频赚钱
  • 做网站首页图片百度旗下产品
  • 网站建设相关对搜索引擎优化的认识
  • 长春南关网站建设seo大全