A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zclove898 高级黑马   /  2011-12-23 01:24  /  1873 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zclove898 于 2011-12-23 02:09 编辑

在集合框架中,迭代器的主要功能是什么,是如何定义的

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

4 个回复

正序浏览
功能:迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法

定义:
ArrayList MoveObjs=new ArrayList();
......
//多态性的体现
foreach(IMoveable Moveable in MoveObjs)
{
    //使用接口调用对象的方法
}
其中,MoveObjs定义为ArrayList类型,然后使用foreach语句列出所有的元素。再例如,可以在下面的代码遍历输出一个数组中的所有元素:
int[] myArray=new int[4]{1,2,3,4};
foreach(int i in myArray)
{
    Console.WriteLine(i);
}

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
zclove898 发表于 2011-12-23 02:09

:handshake
回复 使用道具 举报
为梦而战 发表于 2011-12-23 01:50
集合构架中的换代器主要是用来遍历集合的,比如要获取集合中的对象,
一般定义格式:
Iterator it=ts.itera ...

:):handshake
回复 使用道具 举报
集合构架中的换代器主要是用来遍历集合的,比如要获取集合中的对象,
一般定义格式:
Iterator<T> it=ts.iterator();//定义一个迭代器,T用来指定迭代器中放入的对象的类型,这里用的是泛型,如果不用泛型也行,但循环获取元素的时候
                              就的需要强转了,ts指的是具体使用迭代器的集合的引用,比如ArrayList<T> ts=new ArrayList<T>();
while(it.hasNext())//判断迭代器中有没有下一个元素,如果有就循环
{
           T s=it.next();//使用迭代器的next()方法将迭代器中的元素取出,为了方便,用一个同类型引用指向它,
           System.out.println(s);//这里是输出元素,你可以根据需要对取出来的元素做其它操作,

}

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马