ADT和收藏有什么区别?

时间:2017-06-26 06:55:28

标签: java

我在教科书上有两个定义:

ADT:一组值的规范以及对这些值的操作      这是从概念上定义的,独立于任何编程      语言。

collection:一个对象,它将其他对象分组,并为
提供各种服务             它的客户。

此外,本书指定集合是ADT,但ADT不一定是集合。

对这两个概念感到有些困惑。任何人都可以提供更详细的解释吗?

2 个答案:

答案 0 :(得分:0)

仅在ADT(抽象数据类型)中定义行为,而集合是用于将多个值组合在一起的抽象数据类型。

ADT的实施是具体数据类型(CDT)

示例:

Stack,Queue是ADT,其中只定义了行为,而不是实现。

Set,List是我们将多个对象组合在一起的集合。

所以你使用Collections来完成ADT的任务。就像我们使用Array来实现Stack的行为一样。

答案 1 :(得分:0)

我会尽量把它放在容易理解的地方,因为我记得在我学习的时候我花了好几次。

ADT或抽象数据类型指定(您猜对了)数据类型。它定义了数据类型包含的内容(intstring,自定义值等),它可以做什么(可以在它们上面执行的操作和方法)以及它的行为方式(什么发生了什么以及由于其他事情而做的事情,例如在创建时,执行此操作)。

集合是一个可以容纳许多其他对象的对象。例如,map是一个包含对的集合。每对都有keyvalue。您甚至可以在此处嵌套一个集合,例如key正在(但不限于)intstringvalue可能是list }。

list基本上是array,虽然更先进,更灵活。列表可以有多次出现(或重复),例如string 'test'出现三次。元素遵循可以搜索的特定顺序。新元素也可以放置在您指定的位置。

maplist只是集合的两个示例,您可以在Java Collections框架中看到更多。

希望这个答案有所帮助。