我是靠谱客的博主 小巧夏天,这篇文章主要介绍java采用iterator的好处_java 数据结构(4) Iterator,现在分享给大家,希望可以做个参考。

一、Iterator的好处--面向接口编程

更广泛的使用范围。

Iterator迭代器针对Collection设计,但get(int index)、remove(int index)等一类的方法并不是Collection接口的标准,也就是说,对ArrayList,即List的实现,你能使用这些方法,但对于Collection的其他实现,如Set等,你可能就必须使用Iterator了。

更好的异常控制。

Iterator迭代器允许调用者在在迭代期间对迭代器所指向的Collection进行remove等操作,而对于这种情况,一般的for(int i = 0; i < Collection.size(); i++)遍历方式可能就会出现IndexOutOfBoundsException。

更佳的性能。

对于数组形式的Collection,例如问题中的ArrayList,两种遍历方式可认为性能几乎一致;但对于链表形式的Collection,例如同样是List实现的LinkedList,一般的for(int i = 0; i < Collection.size(); i++)遍历方式可能是噩梦,因为在for loop的内部,执行get(int index)、remove(int index)等一类的方法时需要再次进行部分遍历。即Iterator会从一个节点直接通过next指针获得下一个节点,遍历时间复杂度始终是O(n),而一般的for loop的时间复杂度在链表的情况下会上升至O(n^2),n很大时,性能消耗非常恐怖。

另外补充两点:

对于for循环,我们还有一种叫做所谓for each的写法

最后

以上就是小巧夏天最近收集整理的关于java采用iterator的好处_java 数据结构(4) Iterator的全部内容,更多相关java采用iterator的好处_java内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部