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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘进朝 中级黑马   /  2012-9-27 14:04  /  1947 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 田建 于 2012-9-27 15:56 编辑

怎么更好的去用用Iterator怎么遍历ArrayList中的元素?请详细说明一下.

评分

参与人数 1技术分 +1 收起 理由
田建 + 1

查看全部评分

3 个回复

倒序浏览
  
Iterator it = list.iterator();
     while (it.hasNext()) {
   elements = (String) it.next();
     }
/*
itertor即枚举器,枚举器是Java在后台自动排序好,比纯粹的for循环要快,
因为如果用 for循环,也需要将List中的对象依次取出,这样对内存的调用是随机的,不如Iterator。

*/
回复 使用道具 举报
本帖最后由 刘学 于 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要好一些。

评分

参与人数 1技术分 +1 收起 理由
田建 + 1

查看全部评分

回复 使用道具 举报
这个说不好说,貌似程序员之间最能沟通和交流的也就是代码, 我就用一段小代码,来说明一下吧:

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方法,就可以把集合内的值一个一个的给遍历出来.因为技术原因,可能我讲的比较模糊,推荐楼主看一下毕老师的视频,毕老师的视频这个地方我还没看到,以前我看的是马士兵的视频。希望我的回答对你有帮助!

评分

参与人数 1技术分 +1 收起 理由
田建 + 1

查看全部评分

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