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

网站自己推广怎么做煤炭建设行业协会网站

网站自己推广怎么做,煤炭建设行业协会网站,网站建设广西,网站怎么优化关键词排名Go和Java实现迭代器模式 1、迭代器模式 迭代器模式是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素#xff0c;不需要知道 集合对象的底层表示。 迭代器模式属于行为型模式。 意图#xff1a;提供一种方法顺序访问一个聚合对象中各个…Go和Java实现迭代器模式 1、迭代器模式 迭代器模式是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素不需要知道 集合对象的底层表示。 迭代器模式属于行为型模式。 意图提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决不同的方式来遍历整个整合对象。 何时使用遍历一个聚合对象。 如何解决把在元素之间游走的责任交给迭代器而不是聚合对象。 关键代码定义接口hasNext, next。 应用实例JAVA 中的 iterator。 优点1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多 个遍历。 4、在迭代器模式中增加新的聚合类和迭代器类都很方便无须修改原有代码。 缺点由于迭代器模式将存储数据和遍历数据的职责分离增加新的聚合类需要对应增加新的迭代器类类的 个数成对增加这在一定程度上增加了系统的复杂性。 使用场景1、访问一个聚合对象的内容而无须暴露它的内部表示。 2、需要为聚合对象提供多种遍历方式。 3、为遍历不同的聚合结构提供一个统一的接口。 注意事项迭代器模式就是分离了集合对象的遍历行为抽象出一个迭代器类来负责这样既可以做到不暴露 集合的内部结构又可让外部代码透明地访问集合内部的数据。 适用性 访问一个聚合对象的内容而无需暴露它的内部表示。 支持对聚合对象的多种遍历。 为遍历不同的聚合结构提供一个统一的接口(即支持多态迭代)。 2、Go实现迭代器模式 package iterator// Iterator type Iterator interface {Next() stringFirst()Last()HasNext() bool }package iterator// IteratorImpl type IteratorImpl struct {List []stringIndex int }func (iteratorImpl *IteratorImpl) First() {iteratorImpl.Index 0 }func (iteratorImpl *IteratorImpl) Last() {iteratorImpl.Index len(iteratorImpl.List) - 1 }func (iteratorImpl *IteratorImpl) Next() string {obj : iteratorImpl.List[iteratorImpl.Index]iteratorImpl.Indexreturn obj }func (iteratorImpl *IteratorImpl) HasNext() bool {return iteratorImpl.Index len(iteratorImpl.List) }package iterator// List type List interface {Iterator() IteratorGet(index int) stringGetSize() intAdd(str string) }package iterator// ListImpl type ListImpl struct {Index intSize intList []string }func NewList() List {return ListImpl{Index: 0, Size: 0} }func (listImpl *ListImpl) Iterator() Iterator {return IteratorImpl{Index: 0, List: listImpl.List} }func (listImpl *ListImpl) Get(index int) string {return listImpl.List[index] }func (listImpl *ListImpl) GetSize() int {return len(listImpl.List) }func (listImpl *ListImpl) Add(str string) {listImpl.List append(listImpl.List, str) }package mainimport (fmt. proj/iterator )func main() {list : NewList()list.Add(a)list.Add(b)list.Add(c)// 第一种迭代方式iterator : list.Iterator()for iterator.HasNext() {fmt.Println(iterator.Next())}fmt.Println()// 第二种迭代方式for i : 0; i list.GetSize(); i {fmt.Println(list.Get(i))}fmt.Println()// first()和last()设置第一个元素和最后一个元素firstIt : list.Iterator()firstIt.First()for firstIt.HasNext() {fmt.Println(firstIt.Next())}fmt.Println()lastIt : list.Iterator()lastIt.Last()for lastIt.HasNext() {fmt.Println(lastIt.Next())} }# 程序输出 a b ca b ca b cc3、Java实现迭代器模式 package com.iterator;// Iterator public interface Iterator {Object next();void first();void last();boolean hasNext(); }package com.iterator;// IteratorImpl public class IteratorImpl implements Iterator {private List list;private int index;public IteratorImpl(List list){index 0;this.list list;}Overridepublic void first() {index 0;}Overridepublic void last() {index list.getSize() - 1;}Overridepublic Object next() {Object obj list.get(index);index;return obj;}Overridepublic boolean hasNext() {return index list.getSize();} }package com.iterator;// List public interface List {Iterator iterator();Object get(int index);int getSize();void add(Object obj); }package com.iterator;// ListImpl public class ListImpl implements List {private Object[] list;private int index;private int size;public ListImpl() {index 0;size 0;list new Object[100];}Overridepublic Iterator iterator() {return new IteratorImpl(this);}Overridepublic Object get(int index) {return list[index];}Overridepublic int getSize() {return this.size;}Overridepublic void add(Object obj) {list[index] obj;size;} }package com.iterator;public class Test {public static void main(String[] arg) {List list new ListImpl();list.add(a);list.add(b);list.add(c);// 第一种迭代方式Iterator it list.iterator();while (it.hasNext()){System.out.println(it.next());}System.out.println();// 第二种迭代方式for (int i 0; i list.getSize(); i) {System.out.println(list.get(i));}System.out.println();// first()和last()设置第一个元素和最后一个元素Iterator firstIt list.iterator();firstIt.first();while (firstIt.hasNext()){System.out.println(firstIt.next());}System.out.println();Iterator lastIt list.iterator();lastIt.last();while (lastIt.hasNext()){System.out.println(lastIt.next());}} }# 程序输出 a b ca b ca b cc
http://www.hkea.cn/news/14280793/

相关文章:

  • 怎样做网站变手机软件php模板网站
  • 嘉兴网站建设方案服务凡科如何开通网站建设
  • 网站设计 wordpress网站源码下载
  • 最好的科技资讯网站怎么用照片制作小视频
  • 商务网站开发流程有哪三个阶段app图标制作
  • 自建网站如何备案谷歌网站入口
  • 江北网站建设的技术用jsp做一网站的流程
  • 招聘网站设计师要求网站建设 千佳网络
  • dede关闭手机网站企业网站开发哪家好
  • 网站开发用什么框架好邯郸网站制作地方
  • 二级黄冈站wordpress文章推荐
  • 网页编程培训深圳网站seo哪家快
  • 天津工程建设协会网站一个公司的官网怎么做
  • 什么样的公司愿意做网站免费制作网页的网站
  • 小程序制作搭建东莞排名seo网站关键词优化
  • 怎么做网站的轮播图dw网站制作的源代码
  • 全国各城市感染高峰进度查询宁波网站建设seo
  • 竞价托管网站建设自己开网店没有货源怎么办
  • 三好街做网站公司网站制作长春
  • php响应式网站开发百度云外贸网站建设论坛
  • seo整站优化公司持续监控百度的链接
  • 厦网站建设培训学校wordpress简约博客主题
  • 威海 医院网站建设商品详情页设计模板
  • 响应式网站 价格产品推广计划
  • intitle 郑州网站建设网站开发和程序开发
  • 扬州网站商城建设价格信息免费发布平台
  • 中国建设银行手机网站下载安装用模板做网站需要懂代码吗
  • wordpress淘宝客网站模板网站建设价表模板
  • 哈尔滨网页设计网站模板免费html5网站源码
  • 在网站上做网络课堂软件多少钱怎么开店