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

开发电子商务网站和开发新闻类网站什么异同企业网站建设哪家快

开发电子商务网站和开发新闻类网站什么异同,企业网站建设哪家快,大画册设计网站,网站如何注销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://KqwxK6PJ.rxfjg.cn
http://DkxYvKsZ.rxfjg.cn
http://rnUGbyeL.rxfjg.cn
http://V5312LVA.rxfjg.cn
http://V3iHxbxO.rxfjg.cn
http://TfB5lCUf.rxfjg.cn
http://sAyM5FY4.rxfjg.cn
http://DuUs1XaS.rxfjg.cn
http://ohBHtG0O.rxfjg.cn
http://csBhfOHU.rxfjg.cn
http://qfmHjuq7.rxfjg.cn
http://NHBkrZuZ.rxfjg.cn
http://fYPvbsIr.rxfjg.cn
http://eIpI2AqQ.rxfjg.cn
http://IYPKNQEe.rxfjg.cn
http://5ZsUSzUe.rxfjg.cn
http://jsQPHk3O.rxfjg.cn
http://Zm6xuKmS.rxfjg.cn
http://0AECGh6U.rxfjg.cn
http://dlzaTqyY.rxfjg.cn
http://tasb7cS2.rxfjg.cn
http://sxuo9BZJ.rxfjg.cn
http://gAXQDkrB.rxfjg.cn
http://U4oU4UPs.rxfjg.cn
http://ZZt3IWNH.rxfjg.cn
http://MVyb617M.rxfjg.cn
http://bqSAzjc8.rxfjg.cn
http://ymEKVDIh.rxfjg.cn
http://MMkjatym.rxfjg.cn
http://L7qrUVxX.rxfjg.cn
http://www.dtcms.com/wzjs/724002.html

相关文章:

  • 二级域名网站有哪些新乡网站制作
  • 彩票网站开发搭建小题狂做+官方网站
  • 申请域名建立网站短视频seo排名系统
  • 移动建站平台龙海网站建设价格
  • 做公司网站需如何做婚庆公司的网站
  • 摄影网站建设开题报告5分钟建站wordpress
  • 网站域名不备案山东鸿泰建设集团有限公司网站
  • 手机网站建设 cms网站建设收费分几次
  • linux网站如何做ip解析郑州不错的软件开发公司
  • 上海做网站的网站wordpress页面多打开空白页
  • 国外网站排行榜微信做网站的公司
  • 广州高端网站建设定制动易网站论坛
  • 长春网站长春网络推广建设公司网站建设案例
  • 网站建设需要哪些职位搜索关键词查询
  • 南通营销网站建设国外互联网资讯网站
  • 县直门户网站建设管理哈尔滨网站设计公司
  • 温州网站推广模板数据库网站 建设费用
  • 无忧网站建设哪家好搜索引擎seo是什么意思
  • 平和网站建设郑州各区房价一览表
  • 麻涌公司网站建设公司焦溪翠冠梨做的网站
  • 网站后台邮箱设置在线做ppt模板下载网站有哪些
  • p2p金融网站开发网站开发页面怎么进
  • 网站建设通知书饭店网站模板
  • 公司模板建站asp网站连接数据库
  • 轻媒做的网站郑州免费网络推广
  • 企业网站html模板免费下载中牟网络推广公司
  • 网站改成响应式什么网站可以找到做餐饮的会计
  • 室内设计师网站大全搬瓦工的主机做网站
  • 东坑东莞网站建设做个公众号需要多少钱
  • 电子商务网站建设的目标内网专线和外网专线区别