【问题标题】:Can array of objects be considered as a collection of objects in Java?可以将对象数组视为Java中的对象集合吗?
【发布时间】:2015-02-12 00:44:56
【问题描述】:

Oracle网站对集合的定义是:

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 可能不包含数组)


编辑: 我发现了一些有趣的东西。这是 Microsoft 定义 arrayscollections 的方式: http://msdn.microsoft.com/en-sg/library/9ct4ey7x(v=vs.90).aspx

【问题讨论】:

  • 你不会错的,数组确实是对象的集合,虽然像你说的它没有实现Collection接口。也就是说,人们在说 collection 时通常指的是实现 Collection 的东西。
  • 如果您编写的文本将术语“集合”定义为也适用于数组,那么您可以以这种方式使用该术语。英语不会阻止你。
  • 所以,如果我正在给自己写一份关于对象的文档。我可以编写一个名为“对象集合”的主题标题,并将数组作为其子主题之一。可以吗?
  • 值得注意的是,数组可以是基元数组,而Collection 是引用的集合。

标签: java semantics naming


【解决方案1】:

这在某种程度上是语义问题。英语中的“集合”一词可能意味着“不止一个”,因此,是的,数组就是一个集合。但是,在 Java 中,您通常会看到它拼写为 Collection,带有大写的 C - 即,一个属于 java.util.Collection 子类型的对象。对于这个意思,你不能使用数组,因为java中的数组没有实现这个接口。

【讨论】:

  • 因此,如果我在不引用 util.Collection 时将对象数组称为对象集合,这实际上是一种误导?
  • @user3437460 恕我直言,是的。
【解决方案2】:

我不明白为什么这是个问题。从字面上看,数组是一个“集合”(Read)。

但是,当您深入研究 Java 时,集合的含义从单纯的一组对象变为一组管理(存储、检索、操作等)对象的机制,并由原型 Collection 接口指定。

因此,除非您在 Java 中重写接口,否则您的数组并不完全是一个集合。

【讨论】:

    【解决方案3】:

    数组是一个对象,具有固定计数 - 包括 0 - 相同类型变量的位置。
    仅此而已。
    您可以根据需要说这是一种集合、列表或序列。
    但是所有这些术语都被称为接口或类的名称或其中的一部分,它们不仅仅是一个简单的数组
    因此,如果您将这些名称用于数组,其他人可能无法正确理解您的意思。
    我的建议:数组就是数组,所以叫数组

    【讨论】:

      【解决方案4】:

      可以帮助您解决这一难题的一个区别。 Array 是一个具有连续但有限内存的对象。而 Collection 是一组对象,每个对象都有不同的内存地址。

      Collections 相比,Arrays 的运算速度相对较快。

      CollectionsArrays 之上为您提供了很多实用方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-21
        • 1970-01-01
        • 1970-01-01
        • 2019-03-23
        • 1970-01-01
        • 2018-10-11
        • 2013-08-05
        • 2021-12-14
        相关资源
        最近更新 更多