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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闫志军 中级黑马   /  2013-12-25 23:28  /  1005 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

sequenceInputStream 中用到了枚举,enumeration,,我知道如果用集合vector的话可以直接用枚举,但如果我将多个流添加到arrylist集合中呢 如何 用枚举,是要通过iterator,再用枚举?,{请详细解释一下},why? 是不是iterator和enumeration功能相同,iterator能不能理解成是枚举的改进版,除了这些,iterator和枚举还有什么关系吗

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

3 个回复

倒序浏览
        Enumeration接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。将ArrayList集合中的元素用枚举的方式取出可以有两种方式,下面以两个小程序演示
      1, Iterator与Enumeration功能相似,可以基于Iterator采用内部类的方式创建一个Enumeration对象
                                 
  1. ArrayList<String> al = new ArrayList<String>();
  2.                 al.add("测试1");
  3.                 al.add("测试2");
  4.                 al.add("测试3");
  5.                
  6.                 final Iterator<String> it = al.iterator();
  7.                
  8.                 Enumeration<String> en = new Enumeration<String>()
  9.                 {
  10.                         public boolean hasMoreElements()
  11.                         {
  12.                                 return it.hasNext();
  13.                         }
  14.                         public String nextElement()
  15.                         {
  16.                                 return it.next();
  17.                         }
  18.                 };
  19.                
  20.                 while(en.hasMoreElements())
  21.                 {
  22.                         String str = en.nextElement();
  23.                         System.out.println(str);
  24.                 }
复制代码

       2,使用Collections工具类的enumeration()方法返回一个指定ArrayList集合的枚举
                                   
  1. ArrayList<String> al = new ArrayList<String>();
  2.                 al.add("测试1");
  3.                 al.add("测试2");
  4.                 al.add("测试3");
  5.                 Enumeration<String> en = Collections.enumeration(al);
  6.                 while(en.hasMoreElements())
  7.                 {
  8.                         String str = en.nextElement();
  9.                         System.out.println(str);
  10.                 }
复制代码

点评

哦,,谢谢 thank  发表于 2013-12-27 09:56
哦,,谢谢 thank  发表于 2013-12-27 09:47

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

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