黑马程序员技术交流社区

标题: 用Iterator怎么遍历ArrayList中的元素? [打印本页]

作者: 刘进朝    时间: 2012-9-27 14:04
标题: 用Iterator怎么遍历ArrayList中的元素?
本帖最后由 田建 于 2012-9-27 15:56 编辑

怎么更好的去用用Iterator怎么遍历ArrayList中的元素?请详细说明一下.
作者: 冯培军    时间: 2012-9-27 14:19
  
Iterator it = list.iterator();
     while (it.hasNext()) {
   elements = (String) it.next();
     }
/*
itertor即枚举器,枚举器是Java在后台自动排序好,比纯粹的for循环要快,
因为如果用 for循环,也需要将List中的对象依次取出,这样对内存的调用是随机的,不如Iterator。

*/

作者: 刘学    时间: 2012-9-27 14:24
本帖最后由 刘学 于 2012-9-27 14:35 编辑

public static void main(String[] args) {
  List list = new ArrayList();
  list.add(3);
  list.add(5);
  list.add(6);
  list.add(9);
  
/*
    方法一   利用迭代器和while循环去遍历集合
*/

  Iterator iterator = list.iterator();
  while (iterator.hasNext()) {
   int i = (Integer)iterator.next();
   System.out.println(i);
  }
  

/*
    方法二  利用for循环迭代集合
*/

    for (Iterator iter = list.iterator(); iter.hasNext();) {
  int i = (Integer)iter.next();
   System.out.println(i);
  }


/*
    方法三  利用foreach循环遍历集合
*/

  for (Object obj : list) {
   System.out.println(obj);
  }
  
  /*
    方法四  利用普通for循环和get() 方法去遍历集合
*/
  for (int i = 0; i < list.size(); i++) {
   int k = Integer.parseInt(list.get(i).toString());
   System.out.println(k);
  }
}
//我这里没加泛型 所以有些地方需要强制类型转换,大概有这几种方法,我也就全都列出来了。foreach循环方法遍历是最简洁的,底层用的也是迭代器,还有用for循环比while要好一些。


作者: y510662669    时间: 2012-9-27 14:52
这个说不好说,貌似程序员之间最能沟通和交流的也就是代码, 我就用一段小代码,来说明一下吧:

public class TestArraylist {
        public static void main(String[] args) {
                List<String> list=new ArrayList<String>();
                list.add("hello");
                list.add("world");
                list.add("better");
                Iterator<String> it=list.iterator();
                while(it.hasNext()){
                        String str=it.next();
                        System.out.println(str);
                }
               
        }

}
我还是简要的说明一下吧:
Arraylist的底层就是数组,而Iterator是一个接口,Arraylist的父类List实现了这个接口的iterator方法,就可以把集合内的值一个一个的给遍历出来.因为技术原因,可能我讲的比较模糊,推荐楼主看一下毕老师的视频,毕老师的视频这个地方我还没看到,以前我看的是马士兵的视频。希望我的回答对你有帮助!





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