【发布时间】:2018-09-14 13:51:56
【问题描述】:
我正在阅读 Robert Sedgewick 的《算法》一书,遇到了关于 ADT 的第 1.3 章,我有几个问题。
java 中的所有 ADT 都是可迭代的吗?
这是否意味着我们每次实现 ADT 时都必须实现一个迭代器?
如果是这样,我是否为迭代器制作单独的 API?因为在第 141 页,他为迭代器制作了一个接口。
我在和一位朋友交谈,他说“迭代时可以修改 ADT 的实例(即添加/删除/或修改元素)”这不是错误的,因为在包中元素不能被删除?
【问题讨论】:
-
我从您的帖子中删除了不相关的问题,因为我们希望在此处每个帖子都有一个问题。请随时在单独的问题帖子中提问(您可以在revision history 中找到旧版本)。虽然有点难以理解你想在那里问什么。
-
他在书中提到迭代器很重要以及它们如何帮助我们处理数据。但是任何人都可以实现 ADT,这是否意味着我们也必须实现迭代器?
-
你可能想阅读What is an abstract data type in object oriented programming? 我倾向于说你所有提到的“ADT”都应该替换为“class”。
-
我更多地考虑堆栈、袋子和队列,它们有迭代器。但假设有人手动实现了类似的事情。这就是我使用 ADT 的原因
标签: java algorithm generics abstract-data-type