2017-06-26 40 views
1

我有我的课本为两个。定义:ADT和收集有什么区别?

ADT:一组值和对从任何编程语言 概念和单独定义这些值 的操作规范。

集合:将其他对象进行分组并提供各种服务的对象,其客户端为

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

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

+0

集合是保存某种数据的多个值的数据类型。例如。数组,列表或集合。 – ajb

+1

“这本书规定了一个集合是ADT,但ADT不一定是集合”狗是动物,但动物并不总是狗。一个集合只是ADT的一种类型。 –

+0

任何不是集合的ADT的例子? – ninomi

回答

0

我会试着把它写得很容易理解,因为我记得当我了解它时,它花了我几次。

ADT或抽象数据类型指定(你猜对了)数据类型。它定义了数据类型(int,string,自定义值等),它可以做什么(可以在其上执行的操作和方法)以及它的行为方式(发生了什么以及结果如何)例如创建时,请执行此操作)。

集合是一个可以容纳许多其他对象的对象。例如,一个map是一个保存对的集合。每双有一个key和一个value。您甚至可以在此处嵌套集合,例如key(但不限于)intstring,然后value可以是list

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

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

希望这个答案有帮助。

0

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

的ADT的实现是混凝土数据类型(CDT)

实施例:

堆栈,队列是其中仅行为被定义,而不是实施方式的ADT。

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

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