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

2022-09-03 03:29:51

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

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

到目前为止,我已经想出了:

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

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


答案 1

它们几乎是不相关的,除了说它们都存储了一组值。

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

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

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

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

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


答案 2

数组和集合之间有 5 个区别,如下所示:

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

  2. 数组存储同构数据。集合既存储同构数据,也存储异构数据。

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

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

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