当前位置: 首页 > 面试题库 >

Java中Iterator接口的好处是什么?

孟韬
2023-03-14
问题内容

我刚刚了解了Java Collections
Framework如何在链表中实现数据结构。据我了解,这Iterators是一种遍历列表等数据结构中各项的方式。为什么使用此接口?为什么是方法hasNext()next()remove()不是直接编码为数据结构实现本身?

从Java网站:链接文本

公共接口Iterator

集合上的迭代器。在Java集合框架中,迭代器代替了枚举。迭代器与枚举有以下两种不同:

  • 迭代器允许调用者在迭代期间使用定义明确的语义从基础集合中删除元素。
  • 方法名称已得到改进。

该接口是Java Collections Framework的成员。

我尝试在Google上四处搜寻,但似乎找不到确切的答案。有人可以阐明Sun为什么选择使用它们吗?是因为设计更好吗?增加安全性?好的OO实践?

任何帮助将不胜感激。谢谢。


问题答案:

为什么使用此接口?

因为它支持允许客户端程序员迭代任何种类的集合的基本操作(注意:CollectionObject某种意义上讲不一定是a )。

为什么方法…没有直接编码为数据结构实现本身?

它们是,它们只是被标记为私人,因此您无法进入它们并与它们混为一谈。进一步来说:

  • 您可以实现或将其子类化Iterator,以使其执行标准对象不执行的操作,而不必更改迭代的实际对象。
  • 可以遍历的对象不需要使用遍历方法(尤其是任何高度专业化的方法)来弄乱它们的接口。
  • 您可以将自己Iterators想要的任何客户分发给每个客户,每个客户可以在自己的时间内以自己的速度穿越。
  • Iterators如果在尚不可用的情况下修改了支持它们的存储,则特别是java.util包中的Java 将引发异常Iterator。此异常使您知道Iterator可能现在正在返回无效对象。

对于简单的程序,这似乎都不值得。但是,使它们有用的那种复杂性很快就会浮现出来。



 类似资料:
  • 问题内容: 与这个问题相对应:Java中的接口是什么? 问题答案: 接口是抽象类的一种特殊形式,它不实现任何方法。在Java中,你可以这样创建一个接口: 由于该接口无法实现任何方法,因此这意味着整个事物(包括所有方法)都是公共的和抽象的(Java术语中的抽象含义是“未由此类实现”)。因此,上面的接口与下面的接口相同: 要使用此接口,你只需要实现该接口。许多类可以实现一个接口,而一个类可以实现许多接

  • 问题内容: 当我发现它是一个接口时,我正在阅读接口。我不太了解什么是静态接口,它与常规接口有何不同? 这是接口的定义。此处的文档: Map.Entry 。 问题答案: 我对它不是内部接口的情况感到好奇。 所述改性剂只允许在嵌套类或接口。在您的示例中,嵌套在接口内部。 对于接口,修饰符实际上是可选的。对于接口来说,这种区别是没有意义的,因为它们不包含任何仍然可以访问外部接口的代码。

  • 问题内容: 我相信我理解Java Bean是什么:Java类包含无参数构造函数,可序列化,并使用getter和setter公开其字段。 Java Bean是否必须公开其 所有 字段才能成为Bean?如果没有,它甚至有揭露 任何 ? Java Bean可以包括带有参数的构造函数以及无参数的构造函数吗? 除了符合某种编码风格以外,Java Bean的目的是什么?似乎有很多关于“这个豆”或“那个豆”的讨

  • 本文向大家介绍java  interface 接口的使用好处分析,包括了java  interface 接口的使用好处分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java  interface 接口的使用优点。分享给大家供大家参考,具体如下: 接口interface 的作用是什么? 假设在以前我们开发了某个业务的实现类Demo1,现在根据需求我们需要重新设计该业务的实现类Demo2

  • 为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator)。

  • 问题内容: 人们如何看待在界面中使用的最佳指南?什么应该和不应该进入接口? 我听说有人说,通常,接口只能定义行为,而不能声明状态。这是否意味着接口 不应包含getter和setter? 我的观点:对于setter来说可能并非如此,但有时我认为将getter放置在接口中是有效的。例如,这仅是为了强制实施类来实现这些获取器,并指示客户端能够调用那些获取器以检查某些内容。 问题答案: 我认为一般有两种类