黑马程序员技术交流社区

标题: sequenceInputStream 的问题 [打印本页]

作者: 闫志军    时间: 2013-12-25 23:28
标题: sequenceInputStream 的问题
sequenceInputStream 中用到了枚举,enumeration,,我知道如果用集合vector的话可以直接用枚举,但如果我将多个流添加到arrylist集合中呢 如何 用枚举,是要通过iterator,再用枚举?,{请详细解释一下},why? 是不是iterator和enumeration功能相同,iterator能不能理解成是枚举的改进版,除了这些,iterator和枚举还有什么关系吗
作者: 天天学习    时间: 2013-12-26 22:20
        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.                 }
复制代码





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