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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马伟恒 中级黑马   /  2012-4-25 01:21  /  2451 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");
iterator it=a1.iterator
while(it.hasnext())
{
sop(it.next())
}//这里的sop已经被定义为输出,此处省去,大家明白即可
这个小代码段也知道能打印出这几个代码,但是具体的结合api中的汉语解释又有一点迷糊了, ,尤其是迭代和下一个这2个词语,
明白的重点解释一下java01和java04的详细输出过程,即在这2个代码输出时的hasnext()和next()具体情况,
通俗直白的说一下迭代

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
迭代器,Iterator对已集合类中的任何一个实现类,都可以返回这样一个Iterator对象。就和循环一样,好处是可以适用于任何一个类,而且实际上java对他进行了优化,比直接用index访问快一点,不过呢,有一点很好,就是用起来确实很好用,加上泛型就更好用.
给你一个例子
ArrayList< String > arr = new ArrayList< String >();
Iterator it = arr.iterator;//
迭代的时候可以这样
while( it .hasNext() ){
    //处理一下,例如
    System.out.print( it。next );
}

配合上泛型,一个好处是it.next()可以不用类型转换,以前用的时候是Object,还要自己转,Iterator和泛型是个好兄弟,呵呵

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
在别处借鉴的

看上图,开始while判断,是否还有下一个元素存在(这里刚开始的下一个就是第一个),存在就返回true,往下执行
指针(暂且这么称呼)刚开始在第一个元素的前面,it.next()返回取得的下一个元素,在这里就是第一个,这时指针后移
判断一次后移一位,到了最后一个元素,指针移完以后while判断下一个元素没了,即结束循环。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 赞一个!

查看全部评分

回复 使用道具 举报
iterator it=a1.iterator定义个迭代器获取集合a1里所以元素的地址值  迭代器里的指针在第一个元素的前面 while(it.hasnext()){sop(it.next());}循环判断迭代器里指针后面是否有元素如果有 打印该迭代器里该元素所对应的
地址里的值 没有就退出循环  在操作迭代器时不能同时操作集合否则报异常 迭代器获取集合元素地址时 该集合
不能为null否则报异常  迭代器就相当于一个钟里面的指针 也是个对象 它有行为和属性 封装在钟对象里面 因为它是种的一部分 它要用到钟里面的属性即1到12这些刻痕或数字 你可以操作钟的调节时间按来遍历钟对象的属性即1到12  你没旋转调节时钟按钮一次 钟里的指针即迭代器执行下一个刻痕 也代表着你取出了当前时间
你也可以遍历该迭代器取出所以的时间

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

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