Java ADT和collection的区别是什么?

Java ADT和collection的区别是什么?,java,Java,我在课本上对这两个词都有如下定义: ADT:一组值及其操作的规范 从概念上独立于任何编程进行定义 语言 集合:对其他对象进行分组并向 它的客户 此外,本书还规定收藏是ADT,但ADT不一定是收藏 对这两个概念有点困惑。任何人都可以给出更详细的解释?只有行为在ADT(抽象数据类型)中定义,而集合是用于将多个值分组在一起的抽象数据类型 ADT的实现是具体数据类型(CDT) 例如: 堆栈、队列是ADT,其中只定义了行为,没有定义实现 集合、列表是将多个对象组合在一起的集合 因此,您可以使用集合来完成A

我在课本上对这两个词都有如下定义:

ADT:一组值及其操作的规范 从概念上独立于任何编程进行定义 语言

集合:对其他对象进行分组并向
它的客户


此外,本书还规定收藏是ADT,但ADT不一定是收藏


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

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

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

例如:

堆栈、队列是ADT,其中只定义了行为,没有定义实现

集合、列表是将多个对象组合在一起的集合


因此,您可以使用集合来完成ADT的任务。就像我们使用数组来实现堆栈的行为一样。

我将尝试将其放在易于理解的位置,因为我记得当我学习它时,我花了几次时间

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

集合是可以容纳许多其他对象的对象。例如,
map
是一个包含对的集合。每对都有一个
和一个
。您甚至可以在此处嵌套一个集合,例如
是(但不限于)一个
int
字符串
,然后
值可以是一个
列表

列表
本质上是一个
数组
,尽管它更先进、更灵活。列表可以多次出现(或重复出现),例如
字符串出现三次。元素遵循可以搜索的特定顺序。新元素也可以放置在指定的位置

map
list
只是集合的两个示例,您可以在Java
collections
框架中看到更多


希望这个答案有帮助。

集合是一种数据类型,它包含某种数据的多个值。例如数组、列表或集合。“本书规定集合是ADT,但ADT不一定是集合”狗是动物,但动物并不总是狗。集合只是ADT的一种类型。有哪种ADT不是集合的示例?