黑马程序员技术交流社区

标题: 关于集合框架的迭代器 [打印本页]

作者: zclove898    时间: 2011-12-23 01:24
标题: 关于集合框架的迭代器
本帖最后由 zclove898 于 2011-12-23 02:09 编辑

在集合框架中,迭代器的主要功能是什么,是如何定义的
作者: 为梦而战    时间: 2011-12-23 01:50
集合构架中的换代器主要是用来遍历集合的,比如要获取集合中的对象,
一般定义格式:
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);//这里是输出元素,你可以根据需要对取出来的元素做其它操作,

}
作者: zclove898    时间: 2011-12-23 02:09
为梦而战 发表于 2011-12-23 01:50
集合构架中的换代器主要是用来遍历集合的,比如要获取集合中的对象,
一般定义格式:
Iterator it=ts.itera ...

:):handshake
作者: 为梦而战    时间: 2011-12-23 02:12
zclove898 发表于 2011-12-23 02:09

:handshake
作者: 王胜利    时间: 2011-12-23 08:36
功能:迭代器使开发人员能够在类或结构中支持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);
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2