1介绍

java中的容器主要是Collection<E>的子类型,即都实现了Iterable<E>接口,即使是Map类型,也有entrySet方法可以获得该Map的所有元素组成的Set。在java中的iterator实现利用内部类的机制,可以十分方便的实现。借助内部类可以直接访问外部类的所有方法和字段,因此iterator()返回的Iterator<E>类型,是实现了公共Iterator<E>接口的类型,这样既可以封装容器的迭代器的具体实现,又能给外部提供统一的访问接口,既安全有便捷。

实现了Iterable<E>的类型,均可以通过iterator()获得该容器上的迭代器Iterator<E>实例

2.主要子接口

ListIterator<E>

3.主要方法

  1. hasNext() : boolean,判断该容器是否还有下一个元素
  2. next() : E,返回容器下一个元素
  3. default remove(): void, 移除当前迭代器指向的元素,即最后一次调用next()返回的元素,默认实现抛出UnSupportedOperationException;

4.default 方法(自jdk1.8)

  1. default forEachRemaining(Consumer<? extends E> action) : void,对每一个容器中元素调用action.accept(element)

5.总结

迭代器模式在java中的使用更加便捷和安全。通过Iterable接口,Collection类型可以用于foreach循环,也使得其他类型可以方便的访问该容器。而Iterator中iterator()方法,也恰恰返回了Iterator<E>,这样容器类就给外部提供了统一的访问接口。

最新文章

  1. eclipse 快捷键
  2. [转载]在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?
  3. 从〇开始构架前端(NLDV框架)
  4. Latex 数学符号表
  5. (转载)实现QQ侧滑边栏
  6. WordPress主题制作教程5:循环
  7. AndroidUI 引导页面的使用
  8. Lucene41PostingWriter源代码分析
  9. Android Studio报错:the selected directory is not a valid home for unknow sdk
  10. java虚拟机 jvm 局部变量表实战
  11. 微服务化不同阶段 Kubernetes 的不同玩法
  12. 织梦自定义表单ajax提交范例
  13. Linux系统查看系统是32位还是64位方法总结 in 创新实训
  14. vuex在页面中以对象展开运算符形式引入报错解决
  15. gpio_get_value的定义 (转)
  16. rownum和order by的执行顺序问题
  17. angualr 之 $$phase
  18. 谜题15:令人晕头转向的Hello
  19. 转:c++里关于cerr,clog,cout三者的区别
  20. Editing 2011-2012 ACM-ICPC Northeastern European Regional Contest (NEERC 11)

热门文章

  1. PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象dockNestingEnabled属性
  2. day105:Mofang:设置页面初始化&amp;更新头像/上传头像&amp;设置页面显示用户基本信息
  3. Social Infrastructure Information Systems Division, Hitachi Programming Contest 2020 C题题解
  4. VMware虚拟机下Centos8 设置静态IP地址
  5. socket ThreadingTCPServer学习笔记
  6. webstorm2017.02版本如何使用material theme
  7. 二叉排序树(BST)
  8. Day1 input&amp;print
  9. html 01-认识Web和Web标准
  10. vue第十单元(动态组件 keep-alive(钩子函数) 递归组件(name) 组件命名约定)