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

私人定制网站网站搭建心得体会

私人定制网站,网站搭建心得体会,大宗商品交易平台推荐,58网站建设多少钱简介 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部实现。(Java中使用最多的设计模式之一) UML图 应用场景 Java的集合对象:Collection、List、Map、Set等都有迭代器Java ArrayList的迭代器源码 示例 简…

简介

提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部实现。(Java中使用最多的设计模式之一)

UML图

在这里插入图片描述

应用场景
  • Java的集合对象:Collection、List、Map、Set等都有迭代器
  • Java ArrayList的迭代器源码
    在这里插入图片描述

示例

简单实现集合中的迭代器功能

  1. Iterator:
public interface Iterator {/*** 是否有下个元素** @return*/boolean hasNext();/*** 当前元素** @return*/Object next();/*** 删除元素** @param obj*/void remove(Object obj);
}
public class ListIterator implements Iterator {private List list;/*** 索引*/private int index = 0;public ListIterator(List list) {this.list = list;}@Overridepublic boolean hasNext() {return index != list.size();}@Overridepublic Object next() {Object obj = null;if (hasNext()) {obj = list.get(index);index++;}return obj;}@Overridepublic void remove(Object obj) {list.remove(obj);}
}
  1. Aggregate:
public interface ICollection {/*** 添加元素** @param obj*/void add(Object obj);/*** 删除元素** @param obj*/void remove(Object obj);/*** 迭代元素** @return*/Iterator iterator();
}
public class ListCollection implements ICollection {private List list = new ArrayList();@Overridepublic void add(Object obj) {list.add(obj);}@Overridepublic void remove(Object obj) {list.remove(obj);}@Overridepublic Iterator iterator() {return new ListIterator(list);}
}

3.运行

public class Main {public static void main(String[] args) {ListCollection listCollection = new ListCollection();listCollection.add("aaaaaa");listCollection.add("bbbbbb");listCollection.add("cccccc");listCollection.add("dddddd");// 创建迭代器Iterator iterator = listCollection.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}}
}

在这里插入图片描述

总结

  • 优点

    • 可以不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据
    • 支持以不同的方式遍历一个聚合对象
  • 缺点

    • 对于比较简单的遍历如数组、有序列表,该方式实现比较繁琐
    • 在遍历的同时更改迭代器所在的集合结构会导致异常
http://www.yayakq.cn/news/767529/

相关文章:

  • 湖南电子科技网站建设如何免费建立可以交流的网站
  • 深圳哪家制作网站好网站品牌形象设计怎么做
  • phpcms 下载网站模板互联网技术专业
  • 网站策划预算怎么做wordpress好慢
  • 正规的网站制作服务商深圳个人网站设计
  • 需要前置审批的网站网站出现弹窗
  • 餐饮门户网站源码discuz网站ip
  • 企业备案做电影网站的后果闵行网站建设哪家好
  • 怎么做淘宝客网站江西港航建设投资有限公司网站
  • 仿百度文库网站源码商业版dedecms(梦织)系统内核工业贸易企业 营销型网站
  • 做网站的费用是多少钱wordpress 仿值得买
  • 网站做不做301巢湖网站制作
  • 网站模块划分规划中国企业信息公示网登录
  • 邢台网站关键词优化韩城网站建设
  • 专注苏州网站建设深圳市网站备案
  • 域名备案完成了怎么建设网站建设外贸网站要多少钱
  • 做网站备案 空间是什么意思邯郸网站设计多少钱
  • WordPress可以做大网站吗网站设计风格及特点
  • 九亭网站建设做企业咨询管理怎么样
  • 建设三类人员报考网站重庆建网站推广价格
  • 网站网页打不开怎么办为网站网站做代理怎么判
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载 迅雷下载地址哈尔滨 做网站
  • 东莞seo网站优化运营东莞如何建设网站制作平台
  • 金融直播间网站建设网站开发凭证做什么科目
  • 购买域名后如何建设网站网站开发需求收集 模板
  • 网站后台怎么修改文字网站维护的内容主要包括
  • 杭州做网站小芒建立自己的网站需要多少钱
  • 湖州吴兴建设局网站网页端二维码在哪里
  • 农产品网站策划户外网站模板
  • 西宁市网站设计重庆做企业年报在哪个网站做