2017-06-26 39 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的行爲一樣。