gpt4 book ai didi

iterator - java : The difference between iterators and arraylists

转载 作者:行者123 更新时间:2023-12-03 18:33:22 25 4
gpt4 key购买 nike

您如何向刚开始使用 Java 编程的人解释 ArrayLists 和 Iterators 之间的区别是什么?

为什么我会使用迭代器而不是使用 Arraylist 的 get() 方法

最佳答案

ArrayList 是一个实际的数据结构,是 List 接口(interface)的一个实现。 Iterator 只是一个接口(interface),它允许您浏览任何数据结构(只要 Iterator 可用于该数据结构)。

换句话说,ArrayList 是物理存储在数组中的对象引用(或原语)的实际列表。 ArrayList 是 List 接口(interface)的“实现”,意味着它提供了适用于 List 的所有方法的实现,例如 add(object)、remove(object)、get(index) 等。

Iterator 是一种更通用的方式来浏览任何数据结构,无论是 Set、List 等等。重要的一点是,它允许您浏览数据结构中的每个元素一次,然后您就完成了。从文档中您可以看到 Iterator 规定了两个方法,next() 和 hasNext()。 next 返回底层数据结构中的下一个元素,hasNext 让您知道底层数据结构中是否还有下一个元素。包括 ArrayList 在内的几个数据结构可以为您提供一个迭代器。

Why I would use an iterator instead of using the get() methods of the Arraylist?



嗯,就像许多接口(interface)一样,Iterator 允许你做同样的事情,不管底层实现是什么。如果我想通过某些数据结构“迭代”,我可以

a) 编写专门针对数据结构(例如 ArrayList)的代码,如果我将数据结构更改为其他东西(例如 HashSet),我将在以后更改这些代码,或者

b) 从数据结构中获取一个迭代器,并使用相同的 hasNext/next 技术,即使我将数据结构更改为其他内容也能正常工作。

仅供引用,如果您对“接口(interface)”和“实现”这两个词不太熟悉,您可能应该在“Java 接口(interface)”上进行 Google 搜索。

关于iterator - java : The difference between iterators and arraylists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2413633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com