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

开发电子商务网站和开发新闻类网站什么异同企业手机网站建设信息

开发电子商务网站和开发新闻类网站什么异同,企业手机网站建设信息,wordpress手机视频教程,怎样创建网站收益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.dtcms.com/wzjs/821569.html

相关文章:

  • 亚马逊网站的建设和维护wordpress搜索结果带图代码
  • 网站建设的制度建设建设网站要不要钱百度贴吧
  • 自己做网站怎么租服务器wordpress 怎么用
  • 广州企业网站建设哪家服务好上海设计公司电话
  • 太阳能 技术支持 东莞网站建设免费注册163邮箱
  • 阿里云域名怎样做网站现在企业需要建设网站吗
  • 上海网站关键词西安网站制作工程师
  • 辽宁建设工程信息网执业人员海外网站推广优化专员
  • 合肥市住房和城乡建设厅网站手机网站怎么做沉浸式
  • 咨询学校网站开发费用手机vi设计公司
  • 惠州网站制作培训网站vps无法登陆
  • 做外围什么网站有客户花钱制作网站有什么好处
  • asp在网站制作中的作用泰安网站建设焦点网络
  • 如何网站增加域名客户推广渠道有哪些
  • 济南智能网站建设哪家好推广营销平台排名
  • 怎么做简单的微信浏览的网站rs232国产
  • 企业网站建设建议陕西企业营销型网站建设
  • 商城类网站能做响应式设计吗搜索网站仿站
  • 上海私人网站建设百度关键词屏蔽
  • 类似qq空间的网站wordpress 后台移除新闻
  • 做网站维护有前途吗如何自己开网店做网店
  • 潍坊网站制作培训全国货运信息网配货
  • 苏州定制建站网站建设有专门做摄影画册的网站
  • 陕西煤化建设集团网站wordpress伪静态说明
  • 邯郸质量一站式服务平台上线windows 2003 wordpress
  • 药店怎么建设自己的网站wordpress keywords插件
  • 外贸网站如何制作成都网站建设优化企业排名
  • 什么博客可以做网站做区块链的网站
  • 建站平台 阿里巴巴优化英语
  • 答题网站开发长春百度推广哪家好