我在教科书上有两个定义:
ADT:一组值的规范以及对这些值的操作 这是从概念上定义的,独立于任何编程 语言。
collection:一个对象,它将其他对象分组,并为
提供各种服务
它的客户。
此外,本书指定集合是ADT,但ADT不一定是集合。
对这两个概念感到有些困惑。任何人都可以提供更详细的解释吗?
答案 0 :(得分:0)
仅在ADT(抽象数据类型)中定义行为,而集合是用于将多个值组合在一起的抽象数据类型。
ADT的实施是具体数据类型(CDT)
示例:
Stack,Queue是ADT,其中只定义了行为,而不是实现。
Set,List是我们将多个对象组合在一起的集合。
所以你使用Collections来完成ADT的任务。就像我们使用Array来实现Stack的行为一样。
答案 1 :(得分:0)
我会尽量把它放在容易理解的地方,因为我记得在我学习的时候我花了好几次。
ADT或抽象数据类型指定(您猜对了)数据类型。它定义了数据类型包含的内容(int
,string
,自定义值等),它可以做什么(可以在它们上面执行的操作和方法)以及它的行为方式(什么发生了什么以及由于其他事情而做的事情,例如在创建时,执行此操作)。
集合是一个可以容纳许多其他对象的对象。例如,map
是一个包含对的集合。每对都有key
和value
。您甚至可以在此处嵌套一个集合,例如key
正在(但不限于)int
或string
,value
可能是list
}。
list
基本上是array
,虽然更先进,更灵活。列表可以有多次出现(或重复),例如string
'test'
出现三次。元素遵循可以搜索的特定顺序。新元素也可以放置在您指定的位置。
map
和list
只是集合的两个示例,您可以在Java Collections
框架中看到更多。
希望这个答案有所帮助。