2014-12-13 69 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之上的实用方法。