我有我的課本爲兩個。定義: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