如果有人刚开始学Java编程,你会如何解释ArrayList和Iterators之间的区别?
为什么我要使用迭代器而不是使用ArrayList的get()方法呢?
ArrayList是一种特定类型的List。它是一种数据结构,类似于树形结构、映射或列表。
迭代器是遍历数据结构的设计模式的一个例子。你不能像遍历二叉树那样遍历列表,但是迭代器提供了一个接口,描述了所有数据结构导航器的共同点。
因此,您可以使用迭代器来遍历ArrayList。它们不是同一种东西。一个是导航器,另一个是容器。
那么为什么要优先使用Iterator而不是仅使用ArrayList的get()方法呢?
并非所有集合都有get()方法(例如Collection和Set和二叉树)。如果您需要从ArrayList切换到其中一种数据结构,则必须重写调用get()的所有代码。
但是,如果返回一个迭代器,则代码的客户端不必知道您已更改实现。
如果您使用get(),则使用提供给您的实现。 如果您使用Iterator接口,则可以交换实现以执行智能代理等操作,而不影响客户端。