黑马程序员技术交流社区

标题: 关于迭代器的理解,写代码的时候容易记忆 [打印本页]

作者: 王会涛    时间: 2014-11-9 21:54
标题: 关于迭代器的理解,写代码的时候容易记忆
接口型引用只能指向自己的子类对象,而这个对象不是被new出来的,而是通过集合的方法获取出来的;

ArrayList newAl = new ArrayList();
          
           Iterator it = al.iterator();//通过方法获取迭代器(相当于取元素的工具)
           while(it.hasNext())
           {
                  Object obj=it.next();
                 //对集合元素的操作
           }
迭代器是定义在集合内部的一个工具,通过它,可以遍历集合的元素,当然集合的数据结构不同,取出的动作也不同;

作者: 田峻菘    时间: 2014-11-9 22:43
迭代器就是从集合中取出元素的方式,理解为遍历ji集合。
使用迭代器取出集合中存储元素的三个步骤:
1,调用集合方法iterator()获取迭代器接口的实现类对象。
2,调用接口Iterator方法hasNext()判断集合中有没有下一个元素。
3,调用接口Iterator方法next()获取集合中的元素。
例:
  1.                 //创建集合对象ArrayList
  2.                 Collection con = new ArrayList();
  3.                 con.add("abc8");
  4.                 con.add("ABC1");
  5.                 con.add("abc3");
  6.                 con.add("ABC6");       
  7.                 //使用迭代器获取集合中的元素
  8.                 //集合的方法iterator获取迭代器接口的实现类对象
  9.                 Iterator it = con.iterator();
  10.                 //使用接口方法hasNext()判断,集合中有没有下一个可以被取出的对象
  11.                 //System.out.println(it.hasNext());
  12.                 //使用接口方法next()获取集合中的元素,返回值是Object类型
  13.                 while(it.hasNext()){
  14.                    Object o = it.next();
  15.                System.out.println(o);          
  16.                 }
复制代码

或者用foreach增强for循环遍历集合
  1.             for (Object o : con) {
  2.                         System.out.println(o);
  3.                 }
复制代码

作者: 王会涛    时间: 2014-11-10 09:09
理解很好!
作者: M_______r    时间: 2014-11-10 12:26
就是很简单的 while循环 hasNext(); 判断有无下一元素没有跳出, it.next();取出元素




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