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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘云龙 中级黑马   /  2012-7-25 23:38  /  2658 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组能否实现迭代器?迭代器只能在集合中使用吗?能否自己写一个方法,对数组实现类似迭代器的作用?

8 个回复

倒序浏览
可以  数组变集合,在使用迭代器了,一样一样的
回复 使用道具 举报
迭代器就是循环取值么,所以
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]);
           }

        }
}
回复 使用道具 举报
看看这个高级FOR循环,其实这个FOR循环就是对arr数组进行迭代了。
int[] arr = {1,2,3,4,5,6,7,8,9,0};
for (int i: arr){
       System.out.println(i);
}
回复 使用道具 举报
其实数组中的指针本身就是一个迭代器。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);
}
回复 使用道具 举报
可以的,增强for循环内部就是实现iterator接口的。
int[] num={1,2,3,4,5};
for(int x;num){
sop(x)

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