我有我的课本为两个。定义:ADT和收集有什么区别?
ADT:一组值和对从任何编程语言 概念和单独定义这些值 的操作规范。
集合:将其他对象进行分组并提供各种服务的对象,其客户端为
。
此外,本书指定集合是ADT,但ADT不一定是集合。
对这两个概念有点困惑。任何人都可以提供更详细的解释?
我有我的课本为两个。定义:ADT和收集有什么区别?
ADT:一组值和对从任何编程语言 概念和单独定义这些值 的操作规范。
集合:将其他对象进行分组并提供各种服务的对象,其客户端为
。
此外,本书指定集合是ADT,但ADT不一定是集合。
对这两个概念有点困惑。任何人都可以提供更详细的解释?
我会试着把它写得很容易理解,因为我记得当我了解它时,它花了我几次。
ADT或抽象数据类型指定(你猜对了)数据类型。它定义了数据类型(int
,string
,自定义值等),它可以做什么(可以在其上执行的操作和方法)以及它的行为方式(发生了什么以及结果如何)例如创建时,请执行此操作)。
集合是一个可以容纳许多其他对象的对象。例如,一个map
是一个保存对的集合。每双有一个key
和一个value
。您甚至可以在此处嵌套集合,例如key
(但不限于)int
或string
,然后value
可以是list
。
A list
本质上是array
,虽然更先进和灵活。列表可以有多次出现(或重复),例如让string
'test'
出现三次。元素遵循可以搜索的特定顺序。新元素可以放置在您指定的位置。
map
和list
只是两个集合的例子,您可以在Java Collections
框架中看到更多。
希望这个答案有帮助。
只有行为在ADT(抽象数据类型)中定义,而集合是用于将多个值组合在一起的抽象数据类型。
的ADT的实现是混凝土数据类型(CDT)
实施例:
堆栈,队列是其中仅行为被定义,而不是实施方式的ADT。
Set,List是我们将多个对象组合在一起的集合。
所以你使用集合来实现ADT的任务。就像我们使用Array来实现Stack的行为一样。
集合是保存某种数据的多个值的数据类型。例如。数组,列表或集合。 – ajb
“这本书规定了一个集合是ADT,但ADT不一定是集合”狗是动物,但动物并不总是狗。一个集合只是ADT的一种类型。 –
任何不是集合的ADT的例子? – ninomi