黑马程序员技术交流社区

标题: 迭代器问题 [打印本页]

作者: \(^o^)/    时间: 2014-4-22 14:00
标题: 迭代器问题
本帖最后由 \(^o^)/ 于 2014-4-23 09:57 编辑
  1. import java.util.*;
  2. class CollectionDemo
  3. {
  4. public static void main(String[] args)
  5. {

  6. method_get();

  7. }
  8. public static void method_get()
  9. {
  10. ArrayList a1=new ArrayList();

  11. a1.add("java01");
  12. a1.add("java02");
  13. a1.add("java03");
  14. a1.add("java04");

  15. Iterator it=a1.iterator();//获取迭代器,用于取出集合中的元素。

  16. while(it.hasNext())
  17. {
  18. sop(it.next());
  19. }

  20. }
复制代码

为什么在最后面输入sop(it.next())后才能将元素打印出来 而直接输入sop(it)就是错误的呢?it中不是已经存储了元素吗?
作者: heheka123    时间: 2014-4-22 14:05
Iterator it=a1.iterator();//获取迭代器,用于取出集合中的元素。 你这个it是迭代器,拿出其中的值 是it.next()
作者: 世界公民    时间: 2014-4-22 14:11
it.hasNext()返回的是一个boolean类型的值表示it有没有下一个元素,it.next()则返回一个元素,而且指针会向后移一位。。。
作者: kuroro自走核炮    时间: 2014-4-22 14:11
it中是已经储存的元素,但是你需要打印的是值啊……不能直接打印容器吧?
你需要烧水,锅里有水放在火上烧了,喝水的时候你也不会啃锅啊。
作者: 阿旺    时间: 2014-4-22 14:18
it像是“游标”、“指针”这样的作用吧,a1.iterator()方法产生了一个实现Iterator接口的对象
作者: 天山    时间: 2014-4-22 19:06
kuroro自走核炮 发表于 2014-4-22 14:11
it中是已经储存的元素,但是你需要打印的是值啊……不能直接打印容器吧?
你需要烧水,锅里有水放在火上烧 ...

你这个解释牛B 我一下就懂了




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