黑马程序员技术交流社区

标题: 数组能否实现迭代器 [打印本页]

作者: 刘云龙    时间: 2012-7-25 23:38
标题: 数组能否实现迭代器
数组能否实现迭代器?迭代器只能在集合中使用吗?能否自己写一个方法,对数组实现类似迭代器的作用?

作者: 朱烈葵    时间: 2012-7-25 23:40
可以  数组变集合,在使用迭代器了,一样一样的
作者: 刘海源    时间: 2012-7-25 23:46
迭代器就是循环取值么,所以
public class Array
{
        public static void main(Sting[] args)
        {
             int [] arr={1,3,43,12,34,123,23,23};
           for(int i=0;i<arr.length;i++ )
           {
                     System.out.println(arr[i]);
           }

        }
}
作者: 韦念欣    时间: 2012-7-25 23:52
看看这个高级FOR循环,其实这个FOR循环就是对arr数组进行迭代了。
int[] arr = {1,2,3,4,5,6,7,8,9,0};
for (int i: arr){
       System.out.println(i);
}
作者: 李菁    时间: 2012-7-26 00:15
其实数组中的指针本身就是一个迭代器。Iterator模式用于遍历集合类的标准访问方法。
要遍历数组最好是用传统for循环或高级for循环,例如:
int[] num={1,2,3,4,5};
传统for循环:for(int i=0;i<num.length;i++){
    System.out.println(num);
}
高级for循环:for(int i:num){
    System.out.print(i);
}

作者: 罗宵    时间: 2012-7-26 09:22
可以的,增强for循环内部就是实现iterator接口的。
int[] num={1,2,3,4,5};
for(int x;num){
sop(x)

这就遍历数组了
作者: 刘奇    时间: 2012-7-26 11:20
java里的新特性,forserch就可以是实现数组迭代
for(type x:array)
{
    //迭代 x
}
作者: 刘健    时间: 2012-7-26 16:13
迭代器一般用于遍历,而可以遍历的当然不仅仅是集合了,list,map,set等等显然都是可以用迭代器遍历输出的
作者: 王渠    时间: 2012-7-26 18:56
可以告诉你,迭代器的原理。首先迭代器是出现在Collection接口中的。
然后被几个抽象类实现了,而此处被实现正是迭代器方法。iterator(),hasNext();其实是用的成员变量size来做判断的,每next()一次,size自减一。直到值为-1.也就是说,没有下个了。
next的话,就根据之前的next方法后,得到的角标,返回元素。
这样看来,是否会觉得和数组非常相似,其实底层就应该是数组,集合的功能都可以用数组去实现。当然可能还需要定义一些其他的类。




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