Oracle网站的集合定义是:
A collection — sometimes called a container — is simply an object that groups multiple
elements into a single unit.
我知道Java提供java.util.Collection
。它包括Set
,ArrayList
,Queue
等
我的问题是:如果我将对象数组作为对象集合引用,我会错吗? (即使java.util.Collection
可能没有包含数组)
修改 我找到了一些有趣的东西。这就是微软如何定义数组&的集合: http://msdn.microsoft.com/en-sg/library/9ct4ey7x(v=vs.90).aspx
答案 0 :(得分:2)
这有点像语义问题。英语中的“集合”一词可能意味着“不止一个”,因此,是的,数组是一个集合。但是,在Java中,您通常会将其拼写为Collection,其中包含大写C - 即,java.util.Collection
子类型的对象。为此,您不能使用数组,因为java中的数组不实现此接口。
答案 1 :(得分:2)
我不明白为什么这是一个问题。在字面意义上,数组是一个“集合”(Read)。
但是当你深入研究Java时,集合的意义从仅仅一组对象变为一组管理(存储,检索,操作等)对象的机制,并由原型Collection
接口指定
因此,除非您在Java中覆盖接口,否则您的数组并不是一个集合。
答案 2 :(得分:2)
数组是一个具有修复计数的对象 - 包括0 - 相同类型变量的位置
没什么。
如您所愿,您可以说这是一种集合,列表或序列
但是所有这些术语都是众所周知的接口或类的名称或部分名称,它们不仅仅是一个简单的数组
因此,如果您将这些名称用于数组,其他人可能无法正确理解您的意思
我的建议:数组只是一个数组,所以称之为数组
答案 3 :(得分:1)
可以帮助您解决这一困境的一个区别。 Array
是一个具有连续但有限的内存的对象。而Collection是一组对象,每个对象都有不同的内存地址。
Arrays
相比, Collections
的操作速度相对较快。
Collections
在Arrays
之上为您提供了许多实用工具方法。