数组与java Collection框架中的任何集合之间的差异?

时间:2012-11-13 13:23:45

标签: java arrays collections

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

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

到目前为止,我已提出:

  1. 集合框架类要么使用下面的数组,要么使用更复杂的数据结构。当一个数组只是......一个数组
  2. Array没有方法(没有API),例如Collection类提供的方法。
  3. 如果这些是不正确的假设,请纠正我,当然还要添加自己的答案

4 个答案:

答案 0 :(得分:30)

它们实际上是未发布的,只是说它们都存储了一组值。

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

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

java新手程序员通常无法理解的一个重要区别是可用性和便利性,特别是考虑到Collections在需要时会自动扩展:

  • 数组 - 除非
  • ,否则请避免使用它们
  • 收藏 - 优先使用数组

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

答案 1 :(得分:10)

Array和Collection之间有5个不同之处,如下所示:

  1. 阵列的大小是固定的,而有些集合本质上是可以生长的。

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

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

  4. 建议使用数组进行演奏,而不使用集合。

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

答案 2 :(得分:4)

  1. 阵列的长度是固定的,因为集合本质上是可以生长的。
  2. 数组可以存储同类元素,而集合可以存储两者。
  3. 如果您事先知道尺寸,请选择阵列
  4. 性能观点,最好使用Arrays
  5. Arrays没有任何现成的方法,而Collections有现成的方法。

答案 3 :(得分:2)

数组收藏之间的差异如下:

  1. 阵列的大小是固定的,但集合的大小是动态的。
  2. 关于内存阵列不好用,但就内存而言,最好使用集合。
  3. 就性能而言,使用数组更好,但在性能收集方面不好用。
  4. 数组只能包含同类元素,但集合可以包含同构和异构元素
  5. 数组没有现成的方法,但集合有现成的数据结构和方法。
  6. 数组可以包含基元和包装器对象,但集合只能包含对象。