我是靠谱客的博主 温婉星月,这篇文章主要介绍Foreach与迭代器模式的区别Foreach与迭代器模式的区别,现在分享给大家,希望可以做个参考。

Foreach与迭代器模式的区别

所谓迭代器模式就是一个被大量使用的固定接口,如果我们需要便利一个集合时对元素进行操作的话使用迭代器十分方便。

而Foreach是在Java SE5中出现的一种对集合遍历的句型,也被称作for/in句型,主要用于大部分Collection的遍历(不包括各种Map)和数组的遍历。

  1. Foreach通常用于一次性遍历整个集合,通常不会暂停,大大提升了代码的简洁性和可阅读性。而Iterator可以更好地控制便利过程的每一步。

  2. Foreach在遍历过程中严禁改变集合的长度,进行对集合的删除或添加等操作,而使用Iterator可以在遍历过程中对集合元素进行删除操作。Iterator中的remove()方法只能删除当前迭代器返回的最后一个元素,也就是说,每调用一次next()只能调用一次remove(),如果要在遍历过程中对集合添加元素,需要使用ListIterator,是List专用。

  3. 迭代器模式可以和组合模式一起使用,来控制树状结构的遍历。

  4. Foreach的内部实现是通过迭代器来完成的,实现Iterable接口的类可以使用Foreach句型,Iterable中的iterator()方法返回遍历所用的迭代器。虽然数组也可以使用Foreach句型,但数组并不是Iterable。

  5. Map虽然不能使用Foreach,但可以通过Map.Entry来对Map进行Foreach遍历

    复制代码
    1
    for(Map.Entry entry :map.entrySet()){}

  6. Iterator属于java.util包,Iterable属于java.lang包

最后

以上就是温婉星月最近收集整理的关于Foreach与迭代器模式的区别Foreach与迭代器模式的区别的全部内容,更多相关Foreach与迭代器模式内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部