黑马程序员技术交流社区

标题: 增强for循环的问题 [打印本页]

作者: 杜明辉    时间: 2012-2-8 20:55
标题: 增强for循环的问题
本帖最后由 杜明辉 于 2012-2-10 22:07 编辑

在集合中,我们可以使用迭代器来取数据。但用增强for循环的方式,也能取出集合里的元素。
我想问的是,怎么用增强for循环和泛型的方式,来建立一个集合通用的取出元素的方式?
请各位大侠列出代码。说明原因。
作者: 余海龙    时间: 2012-2-8 20:58
获取Collection集合中的元素方法:

1,迭代器:
ArrayList<String> al = new ArrayList<String>();
Iterator<String> it = al.iterator();
while(it.hasNext()){
        String s = it.Next();
        System.out.println(s);
}


2,增强for循环:
ArrayList<String> al = new ArrayList<String>();
for(String  s : al){
        System.out.println(s)

}

作者: 最初的理想    时间: 2012-2-8 21:13
增强for循环只能用于数组和实现了Iterable接口的集合类,所以不是所有集合类都可以使用增强for循环
作者: 梅雄新    时间: 2012-2-8 22:32
楼主想用增强for循环不是不可以
楼主应该知道Collection集合里存储的都是object的对象 楼主想用泛型可以在用for循环获取到对象后再转换使用
eg:
ArrayList<E> a = new ArrayList<E>();
for(Object obj : a){
        //此时获取到了每个对象父类对其的引用
       //这里可以强转成对象类型
}

例如
Student 为一个类
                ArrayList<Student> a = new ArrayList<Student>();
                a.add(new Student("aaa"));
                a.add(new Student("bbb"));
                a.add(new Student("ccc"));
                a.add(new Student("ddd"));
                a.add(new Student("eee"));
                        for(Object obj : a)
                        {
                            Student std = (Student)obj;  //可以在使用的时候再强转
                            System.out.println(std);
                        }
作者: 刘基军    时间: 2012-2-9 09:56
供参考:
  1. import java.util.List;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;

  4. class TestDemo
  5. {
  6.         public static void main(String args[])
  7.         {
  8.                 List<String> list = new ArrayList<String>();
  9.                 list.add("Anne");
  10.                 list.add("Panda");
  11.                 list.add("Jack");
  12.                
  13.                 Iterator<String> it = list.iterator();
  14.                 while(it.hasNext())
  15.                 {
  16.                         System.out.println(it.next());       
  17.                 }
  18.                
  19.                 //能够使用迭代器的集合,也可以用增强for循环
  20.                 System.out.println();
  21.                 for(String s:list)
  22.                 {
  23.                         System.out.println(s);       
  24.                 }
  25.         }
  26. }
复制代码





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