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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜明辉 黑马帝   /  2012-2-8 20:55  /  1955 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜明辉 于 2012-2-10 22:07 编辑

在集合中,我们可以使用迭代器来取数据。但用增强for循环的方式,也能取出集合里的元素。
我想问的是,怎么用增强for循环和泛型的方式,来建立一个集合通用的取出元素的方式?
请各位大侠列出代码。说明原因。

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

4 个回复

倒序浏览
获取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)

}

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
增强for循环只能用于数组和实现了Iterable接口的集合类,所以不是所有集合类都可以使用增强for循环
回复 使用道具 举报
楼主想用增强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);
                        }

评分

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

查看全部评分

回复 使用道具 举报
供参考:
  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. }
复制代码

评分

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

查看全部评分

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