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

网站标题名字和备案名字金融企业网站源码

网站标题名字和备案名字,金融企业网站源码,怎么做门淘宝网站,杭州家装设计公司排名经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。 1-原理和实现 迭代器模式(Iterator Design Pattern)&a…

       经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。

1-原理和实现

       迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。它用来遍历集合对象。这里说的“集合对象”也可以叫“容器”“聚合对象”,实际上就是包含一组对象的对象,比如数组、链表、树、图、跳表。迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一。

       迭代器是用来遍历容器的,所以,一个完整的迭代器模式一般会涉及容器容器迭代器两部分内容。为了达到基于接口而非实现编程的目的,容器又包含容器接口、容器实现类,迭代器又包含迭代器接口、迭代器实现类。容器中需要定义iterator()方法,用来创建迭代器。迭代器接口中需要定义hasNext()、currentItem()、next()三个最基本的方法。容器对象通过依赖注入传递到迭代器类中。

我们看下java里面迭代器的设计:

public interface Iterator<E> {//只粘贴核心方法boolean hasNext();E next();}//ArrayList内部类
private class Itr implements Iterator<E> {int cursor;       // index of next element to returnint lastRet = -1; // index of last element returned; -1 if no suchint expectedModCount = modCount;Itr() {}public boolean hasNext() {return cursor != size;}@SuppressWarnings("unchecked")public E next() {checkForComodification();int i = cursor;if (i >= size)throw new NoSuchElementException();Object[] elementData = ArrayList.this.elementData;if (i >= elementData.length)throw new ConcurrentModificationException();cursor = i + 1;return (E) elementData[lastRet = i];}}@Slf4j
public class IteratorTest {public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("hello");list.add("world");list.add("java");Iterator<String> iterator = list.iterator();while(iterator.hasNext()){log.info(iterator.next());}}}

2-迭代器模式的优势

一般来讲,遍历集合数据有三种方法:for循环、foreach循环、iterator迭代器。

@Slf4j
public class IteratorTest {public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("hello");list.add("world");list.add("java");// 第一种遍历方式:for循环for (int i = 0; i < list.size(); i++) {log.info(list.get(i));}log.info("*****************************");// 第二种遍历方式:foreach循环for (String str : list) {log.info(str);}log.info("*****************************");// 第三种遍历方式:迭代器遍历Iterator<String> iterator = list.iterator();while(iterator.hasNext()){log.info(iterator.next());}}}

       foreach循环只是一个语法糖而已,底层是基于迭代器来实现的。也就是说,上面代码中的第二种遍历方式(foreach循环代码)的底层实现,就是第三种遍历方式(迭代器遍历代码)。这两种遍历方式可以看作同一种遍历方式,也就是迭代器遍历方式。从上面的代码来看,for循环遍历方式比起迭代器遍历方式,代码看起来更加简洁。那我们为什么还要用迭代器来遍历容器呢?为什么还要给容器设计对应的迭代器呢?

       迭代器模式封装集合内部的复杂数据结构,开发者不需要了解如何遍历,直接使用容器提供的迭代器即可;
       迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一;
       迭代器模式让添加新的遍历算法更加容易,更符合开闭原则。除此之外,因为迭代器都实现自相同的接口,在开发中,基于接口而非实现编程,替换迭代器也变得更加容易。

http://www.yayakq.cn/news/115593/

相关文章:

  • 网站上传教程上海2022进口博览会开幕式
  • 全能医院网站管理系统苏州网站建设哪个比较牛
  • wordpress自定义页面编码大兴网站建设优化seo
  • 珠宝网站开发wordpress返回404页面跳转
  • 哈尔滨个人建站模板个人如何做公益网站
  • discuz网站ip国内十大平面设计公司
  • dnf免做卡领取网站大都会app官网下载
  • 如何做一个网页界面成都网站优化及推广
  • 正规网站建设哪家好杭州网站建站
  • 昆明app网站开发公司郫县做网站
  • 手机网站设计公司只找亿企邦wordpress 相册 链接
  • 云南网站建设优化企业王者荣耀网页设计报告
  • dede网站mip萧江网站建设
  • 珠峰网站建设招聘网站套餐
  • 做饰品一般用什么网站做首饰做电商网站微信号是多少
  • 浙江建设培训中心网站福州工程网站建设团队
  • 网站建设费用属于管理费用科目wordpress+知更鸟+下载
  • 网站制作学费多少钱一个门户网站怎么做
  • 网站建设与网页制作实训报告wordpress4.7 php版本
  • 天猫网站网址做白酒用哪个分类信息网站
  • 整站seo定制做网站如何挑选服务器
  • 专业网站建设方案博客 选择 WordPress
  • 如何用域名做邮箱 网站网站安全在线检测
  • 电子商务网站建设及推广方案论文在网站文章锚文本怎么做
  • 怎么投诉没有备案就已经运营网站高端大气的的网站
  • wordpress小说网站四库虎紧急入口2022
  • 网站首页栏目怎么做wordpress 页面缓存
  • 网站设计理念为什么不用wordpress
  • 互助平台网站建设费用做网站和优化公司的宣传语
  • 公司网站框架WordPress网易云悬浮插件