当我们有ArrayLists时,为什么了解Arrays很重要?

时间:2013-08-06 16:12:10

标签: java arrays data-structures

我很好奇为什么在使用ArrayLists时会使用Arrays?使用ArrayList不总是更好吗?

6 个答案:

答案 0 :(得分:6)

查看this comparison

如您所见,这两种结构之间存在重要差异。您将找到使用其中一个(或两者)的API,您必须了解两者之间的优缺点和功能差异。

一个特别的区别是本机数组可以存储基元而不会出现装箱/拆箱的低效率。当您拥有代表数据流/数据集的大小数组时,这一点非常重要。

另请注意,ArrayList 不是协变。也就是说,Integer[]Number[],但ArrayList<Integer>不是ArrayList<Number>。有关详细信息,请参阅here

答案 1 :(得分:4)

数组和ArrayList提供不同但有时重叠的目的。

除此之外,简单的事实是你不在真空中编码,因此你将使用涉及数组的API,因此了解它们不是可选的。数组是计算机科学中绝对的基础结构。

答案 2 :(得分:4)

您可以使用ArrayList对数组执行许多操作。例如,

  1. 使用byte[]char[]
  2. 从文件中读取多个字节或代码单元
  3. 调用处理向量的原生数字或图形库,或表示为float[] s或double[] s
  4. 的矩阵

    您可以使用其他非基本数组抽象而不是ArrayList,但有时表示分为数字单元的连续内存区域的最佳方法是使用数组。

答案 3 :(得分:2)

在编程基础知识方面有一个合适的基础是非常重要的。这些基础包括变量类型,函数,参数,数组等。没有适当的基础,你学到的其他一切都会崩溃,因为你没有适当的基础。换句话说,假设你想要学习一门语言,你可以通过记忆开始学习整个短语,但是很高兴能从舌头上汲取一些语言并开始消化和拼凑如何用词语来代替粗暴地强迫它并记住你需要的所有句子。

答案 4 :(得分:2)

如果您希望更好地了解“幕后”发生的事情,或者您想学习C语言或汇编语言等低级语言,那么学习数组非常重要。

请问你在哪里学习Java?这是学校/大学吗?如果是这样,请尝试使用Arrays,因为它们将用于数据结构等课程,特别是如果您开始使用不具有ArrayList等效语言的语言。

尽你所能了解它。了解正在发生的事情是有益的。

答案 5 :(得分:0)

String []array = { "I","DO","NOT","RESIZE" };