黑马程序员技术交流社区

标题: 关于Enumeration,求指教? [打印本页]

作者: 阿凡提不买驴    时间: 2013-7-22 10:29
标题: 关于Enumeration,求指教?
本帖最后由 杨兴庭 于 2013-7-23 17:43 编辑
  1. public static void merge() throws IOException{
  2. ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();
  3. for(int x=1;x<=3;x++)
  4. al.add(new FileInputStream("F:\\"+x+".jpg"));
  5. final Iterator<FileInputStream> it=al.iterator();
  6. Enumeration<FileInputStream> en=new Enumeration<FileInputStream>(){
  7. @Override
  8. public boolean hasMoreElements() {
  9. // TODO Auto-generated method stub
  10. return it.hasNext();
  11. }
  12. @Override
  13. public FileInputStream nextElement() {
  14. // TODO Auto-generated method stub
  15. return it.next();
  16. }
  17. };
  18. SequenceInputStream sis=new SequenceInputStream(en);
  19. FileOutputStream fos=new FileOutputStream("F:\\2.jpg");
  20. byte[] buf=new byte[1024];
  21. int len=0;
  22. while((len=sis.read())!=-1)
  23. fos.write(buf,0,len);
  24. fos.close();
  25. sis.close();
  26. }
复制代码
中间Enumeration的匿名内部类,什么时候去把集合中的数据加入进去了?而且也没有循环
作者: 草貌路飞    时间: 2013-7-22 10:44
没有把数据加进去,它实现的自己的迭代方法,本质执行的还是外面的集合的迭代器的方法。
作者: wang100753    时间: 2013-7-22 11:04
java Enumeration(枚举类型)

1:跟类定义一样,枚举类型可以单独放在一个文件里,当一个枚举类型用public修饰时,它对其他包可见,否则只对同一个包中的类可见,这和类定义是一样的。
2:标识符 MONDAY, TUESDAY等就称为枚举常量(enumeration constants)
3:每一个枚举常量被隐式的声明成Day的一个public、static成员,而且其类型为Day,亦就是说这些常量是self-typed的
作者: Super_Class    时间: 2013-7-22 16:36
没有添加进去,是组合模式调用了Iterator的方法
作者: 阿凡提不买驴    时间: 2013-7-24 22:58
还是不懂,求指教,觉得只是复写了,可是没有什么代码执行,例如集合里面的add什么,主要是想知道,这个匿名内部类还有迭代器具体是怎么实现迭代添加数据的?




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