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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 阿凡提不买驴 中级黑马   /  2013-7-22 10:29  /  1415 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 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的匿名内部类,什么时候去把集合中的数据加入进去了?而且也没有循环

评分

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

查看全部评分

4 个回复

倒序浏览
没有把数据加进去,它实现的自己的迭代方法,本质执行的还是外面的集合的迭代器的方法。

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 技术分飞涨啊。。。

查看全部评分

回复 使用道具 举报
java Enumeration(枚举类型)

1:跟类定义一样,枚举类型可以单独放在一个文件里,当一个枚举类型用public修饰时,它对其他包可见,否则只对同一个包中的类可见,这和类定义是一样的。
2:标识符 MONDAY, TUESDAY等就称为枚举常量(enumeration constants)
3:每一个枚举常量被隐式的声明成Day的一个public、static成员,而且其类型为Day,亦就是说这些常量是self-typed的

评分

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

查看全部评分

回复 使用道具 举报
没有添加进去,是组合模式调用了Iterator的方法

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 赞一个!

查看全部评分

回复 使用道具 举报
还是不懂,求指教,觉得只是复写了,可是没有什么代码执行,例如集合里面的add什么,主要是想知道,这个匿名内部类还有迭代器具体是怎么实现迭代添加数据的?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马