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

千助网站建设关于网站建设的方案ppt

千助网站建设,关于网站建设的方案ppt,家谱网站源码下载,访问wordpress速度慢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.dnsts.com.cn/news/38954.html

相关文章:

  • 如何在网站上添加qqapp首页界面设计
  • 专业网站设计学校网络推广工作描述
  • 做苗木生意上什么网站做网站公司费用
  • 高品质的网站开发公司网站策划与维护
  • 外贸网站商城建设网站建设分为那几个模块
  • wamp做的网站外网怎么访问不了杭州网络营销公司
  • 网站效果图模板软件专业做学校网站论文怎么选题
  • 石家庄网站建设时光旅游网站开发实验报告
  • 卖汽车配件怎么做网站wordpress 附件上传插件下载失败
  • 网站站点建设的端口成立一家公司的基本流程
  • 虚拟主机空间发布网站网站建实例
  • 哪些网站可以做网店网页翻译器在线翻译
  • c#做的网站怎么上传图片网站开发流程有哪些
  • 做图素材网站wordpress tdk
  • 一个网站备案多个域名吗网站建设及管理工作岗位要求
  • 西樵建网站检查网站是否做网站地图
  • 深圳网站设计吧迅驰互联网站建设网络推广怎么样
  • 网络彩票的网站怎么做腾讯邮箱网页版登录入口
  • 网站域名管理在哪里路由器做网站80端口
  • 关于网站开发的一些论文wordpress怎样上传
  • 怎么把自己做的网站登录到网上网站设计公司 无锡
  • 家具网站建设策划方案300个吉祥公司取名大全
  • 如何利用NAS做网站温州网站专业制作
  • 网站开发设计大赛东莞营销型高端网站建设
  • 外贸网站 源wordpress v2ex主题
  • 好网站建设公司哪里好鹤壁网络推广公司
  • 怎么做不用数据库的网站去哪儿网站做宣传多少钱
  • 网站title标签内容怎么设置设备网站开发
  • 做网站找模版好吗腾讯云自助建站
  • 萍乡建网站建站方案书