2014-12-13 67 views
3

甲骨文網站的定義是:可以將對象數組視爲Java中的對象集合嗎?收集

A collection — sometimes called a container — is simply an object that groups multiple 
elements into a single unit. 

我知道Java提供java.util.Collection。它包括SetArrayListQueue

我的問題是:我將是錯誤的,如果我是指對象的數組作爲對象的集合? (儘管java.util.Collection可能不包括數組)


編輯: 一些有趣的,我發現。這是微軟如何定義陣列 & 收藏http://msdn.microsoft.com/en-sg/library/9ct4ey7x(v=vs.90).aspx

+0

你不會錯,一個數組確實是一個對象的集合,雖然就像你說的它沒有實現Collection接口一樣。這就是說人們通常在收集時會引用實施收集的東西。 – 2014-12-13 11:38:16

+1

如果你寫了一個文字,你將術語「集合」定義爲適用於數組,那麼你可以這樣使用該術語。英語不會阻止你。 – 2014-12-13 11:39:21

+0

所以,如果我正在寫自己的對象文件。我可以寫一個主題頭調用「對象集合」,並將數組作爲它的一個子主題。沒事兒? – user3437460 2014-12-13 11:42:03

回答

2

這有點語義的問題。英文中的「收集」一詞可能意味着「不止一個」,因此,是的,一個數組是一個集合。但是,在Java中,您通常會將其拼寫爲Collection,並使用大寫字母C - 即子對象爲java.util.Collection。爲了這個意思,你不能使用數組,因爲java中的數組並沒有實現這個接口。

+0

因此,當我不指向util.Collection權利時,如果我將對象數組作爲對象集合引用,實際上會產生誤導性? – user3437460 2014-12-13 11:43:53

+0

@ user3437460恕我直言,是的。 – Mureinik 2014-12-13 11:46:16

2

我不明白爲什麼這是一個問題。在字面意義上,數組是一個'集合'(Read)。

但是,當你潛入Java中時,集合的含義將從單純的一組對象變爲一組管理(存儲,檢索,操作等)對象的機制,並由原型接口指定。

所以,除非你重寫Java中的接口,否則你的數組並不是一個集合。

2

數組是指具有固定計數(包括0)的相同類型變量的位置的對象。
沒有更多。
如你所願,你可以說這是一種集合,或者列表或者一個序列。
但是,所有這些術語都是衆所周知的接口或類的名稱或其中的一部分,它們遠不止一個簡單的數組
因此,如果您將這些名稱用於數組,那麼其他人可能無法正確理解您意思。
我的建議:數組只是一個數組,所以稱它爲陣列

1

一個不同之處,可以幫助你這種尷尬局面。 Array是一個連續但有限內存的對象。而集合是一組對象,每個對象具有不同的內存地址。

ArraysCollections相比,在操作上相對較快。

Collections給你很多在Arrays之上的實用方法。