标签:文件 复用 ace 使用 ati 技术分享 查询 文件的 iterable
迭代器模式(Iterator)定义: 提供一种方法顺序访问聚合对象的各个元素吗而又不暴露该对象的内部展示
- 原文中编写了三个简单的集合 ArraryList HashSet LinkedList 原先是没有实现Iterable 内部没有具体实现iterator
- 问题1: 遍历的时候遍历了几次
- 使用数组遍历的时候实际是遍历了两次, 由于System.arrayCopy 和 set的 toArray 看不到源码, 但是LinkedList 可以看到链表遍历了一次, 然后我们再遍历这个数组, 打印
- 问题2: 如何解决这个问题
- 可以给 LinkedList ArrayList 加get(index)的方法遍历, 但是HashSet就没法了, 实际上是Map的key集合, 无序的, 实际上这里面linkedList的get 比较麻烦了, 所以有查询的性能的问题
- 总结: 牛人左哥: "那就用迭代器模式吧"
- 很相似, 但迭代器模式有个接口这个概念
- 遍历对象的区间
- 具体的集合类与具体的迭代器是绑定的关系, 这种实现方式几乎没有复用的可能, 可以看着是特事特办, 算是把双刃剑, 权衡自己把握
- 以前重来都没有去尝试解析
- 现在先记下
- invoke 调用 virtual(实现类)方法 interface(接口)方法
- astore 赋值栈
_3
第3+1
个引用变量- aload 压入值栈
_3
第3+1
个引用变量- checkcast 检测类型转换
- getStatic 获取静态属性
- ifne 如果返回true就 执行
标签:文件 复用 ace 使用 ati 技术分享 查询 文件的 iterable
原文地址:http://www.cnblogs.com/denghailei/p/6836306.html