2013-01-20 27 views
10

在Java中,我不明白集合與「數據結構」。在我看來,集合是指列表,集合,映射,隊列,'數據結構'是指用於實現集合的數據結構,如數組,鏈表或樹。例如ArrayList和LinkedList都是集合,但它們的數據結構分別是一個數組和一個鏈表。我是正確的,還是我混淆了術語?Java:集合與「數據結構」之間的區別

+0

雖然簡單的問題,但很高興你問。許多人不會問,並永遠懷疑:-) – CuriousMind

回答

6

數據結構是數據如何在內存中的存儲器中表示。收集是如何訪問它。我強調「可以」這個詞。

如果您將數據存儲在LinkedList中並對其進行排序,則性能將下降。如果使用ArrayList,則相同的算法會提高性能。只要改變它在內存中表現的方式,將有助於各種因素。

您「可」使用集合表示訪問它,您「可以」也可以使用「索引」訪問數據。你也可以去getFirst,getNext,getPrev。

您的困惑在於內部存儲和訪問存儲之間。分開2.

11

數據結構是表示某種數據的對象的通用術語,因此鏈表,數組等都是數據結構。 Java意義上的集合是指任何實現接口的類。一般意義上的集合只是一組對象。

+0

術語集合在其他編程語言中是否有意義,或者它實際上是Java使用的術語? – user1888243

+1

這是一個通用術語。但是,當用在Java上下文中時,它通常意味着java集合類。 –

+1

+1此外,通過該定義,「集合」接口的實現是一種數據結構,它提供了處理一組對象的方法。 –

1

數據結構具有某種模式的概念,例如,一個房子的代表會列出諸如方形鏡頭,臥室等東西。這就是通常意味着的東西:如何將數據結構表示爲數據?

正如Jeff所說,一個集合就是一組對象。集合確實具有結構,但它們的結構完全是組織的,例如,樹,或列表或鏈接列表。

相關問題