16

正如标题所说,我正在研究“数组与 java Collection 框架中的任何集合之间的差异”。

认为它的水平足够高,可以为我们中的一些(或许多)对此知之甚少或需要思考太久才能得出有趣答案的人提供一些很好的理解

到目前为止,我想出了:

  1. 集合框架类要么在下面使用数组,要么使用更复杂的数据结构。当一个数组只是...一个数组
  2. Array 没有 Collection 类提供的方法(没有 API)。

如果这些假设不正确,请纠正我,当然还要添加您自己的答案

4

4 回答 4

35

它们实际上是无关的,只是说它们都存储一组值。

从能力的角度来看,虽然两者都可以存储对对象的引用:

  • 数组可以存储原语
  • 集合不能存储原语(尽管它们可以存储原语包装类,例如Integer等)

一个重要的区别,Java 新手通常不理解,是可用性和便利性之一,特别是考虑到集合会在需要时自动扩展大小:

  • 数组 - 避免使用它们,除非你必须
  • 集合 - 优先使用它们而不是数组

数组最终是在一个对象中存储一组基元/引用的唯一方法,但它们是最基本的选项。尽管数组可能会给您带来一些速度优势,但除非您需要超快的代码,否则集合是首选,因为它们非常方便。

于 2012-11-14T13:49:15.773 回答
12

Array 和 Collection 之间有 5 个区别,如下所示:

  1. 数组的大小是固定的,而一些集合本质上是可以增长的。

  2. 数组存储同质数据。集合存储同质和异构数据。

  3. 在数组中,没有下划线数据结构,而集合有下划线数据结构。

  4. 建议使用数组来提高性能,而不建议使用集合。

  5. 与集合相比,数组使用更多的内存空间。

于 2015-04-02T07:14:06.580 回答
4
  1. 数组的长度是固定的,而集合本质上是可增长的。
  2. 数组可以存储同质元素,而集合可以存储两者。
  3. 如果您事先知道大小,请选择数组
  4. 从性能的角度来看,最好使用 Arrays
  5. 数组没有任何现成的方法,而集合有现成的方法。
于 2016-01-18T14:09:23.917 回答
2

数组集合之间的 6 个区别如下:

  1. 数组的大小是固定的,但集合的大小是动态的。
  2. 关于内存数组不好用,但关于内存集合更好用。
  3. 就性能而言,最好使用数组,但就性能而言,集合不好用。
  4. 数组只能包含同质元素,但集合可以同时包含同质和异质元素
  5. 数组没有现成的方法,但集合有现成的数据结构和方法。
  6. 数组可以同时保存原语和包装对象,但集合只能保存对象。
于 2017-10-01T08:29:51.047 回答