
迭代器是什么
简介: 迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。 1.功能: 迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法。 2.特点: (1)迭代器是可以返回相同类型值的有序序列的一段代码。 (2)迭代器可用作方法、运算符或get访问器的代码体。 (3)迭代器代码使用yieldreturn语句依次返回每个元素,yield break将终止迭代。 (4)可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){}。 (5)迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种。
C#中迭代是什么?迭代器又是什么?
用最直观的说法,迭代就是指循环,迭代器是指实现该循环的一种方式,下面讲解什么叫迭代器:
迭代器是C# 2.0中的新功能,它是方法、get访问器或运算符,它使开发人员能够在类或结构中支持foreach迭代,而不必实现整个IEnumerable接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成IEnumerable或IEnumerable接口的Current、MoveNext和Dispose方法。迭代器有以下特点:
迭代器是可以返回相同类型值的有序序列的一段代码;
迭代器可用作方法、运算符或get访问器的代码体;
迭代器代码使用yield return语句依次返回每个元素,yield break将终止迭代;
可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端代码调用;
迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;? 迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;
迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;
迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;
什么是迭代器 iterator
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。 为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素. 例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator). 对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。 但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。
Iterator<String> it = set.iterator();这句代码如何解释呢?
Set类的iterator()返回了一个实例,这个实例是Iterator的实现类。这就是常说的向上转型。
换句话说,java允许父类型持有子类的引用。
Java的三大特性之一-----多态,所谓多态有3种情况:1.返回值多态,2.参数多态,3.父类或接口实例化子类,上述情况属于第三种,set.iterator()返回值是本身就是Iterator类型,例外,实例化set的时候是,用到多态,如下:
Set set = new HashSet();
Iterator it = set.iterator();
推荐阅读
- ○ w3school,w3school和w3cschool两个网站有什么关系和区别
- ○ w3c,W3C是干什么的?
- ○ w3,营养学中的常用英文缩写及其含义,跪求各位大哥大姐!谢谢好
- ○ insert into,VB insert into 的用法
- ○ html css,CSS是什么?和HTML有什么区别?
- ○ jquery ajax,PCD刀具的焊接方法常用的有哪几个
- ○ 万维网联盟,万维网是什么意思
- ○ php手册,PHP+MySQL完全学习手册的图书目录
- ○ background-color,background和background-Color的区别介绍
- ○ css手册,什么是CSS样式表?
最新文章
- ○ w3school,w3school和w3cschool两个网站有什么关系和区别
- ○ w3c,W3C是干什么的?
- ○ w3,营养学中的常用英文缩写及其含义,跪求各位大哥大姐!谢谢好
- ○ insert into,VB insert into 的用法
- ○ html css,CSS是什么?和HTML有什么区别?
- ○ jquery ajax,PCD刀具的焊接方法常用的有哪几个
- ○ 万维网联盟,万维网是什么意思
- ○ php手册,PHP+MySQL完全学习手册的图书目录
- ○ background-color,background和background-Color的区别介绍
- ○ css手册,什么是CSS样式表?