【发布时间】:2015-10-24 17:55:45
【问题描述】:
我已经编程了很长时间,最近开始学习更纯的计算机科学主题(用于工作面试)。
我知道 Array 和 LinkedList 数据结构之间的区别,但现在我已经开始使用 Java,我看到了这个 ArrayList,我在概念化时遇到了麻烦。
网络搜索只真正向我展示了如何使用它们以及何时使用它们(每种方法的好处),但没有什么可以回答我的问题:
什么是数组列表?我的假设是它是一个维护每个元素的内存引用的列表,使其也能够像数组一样工作。
我也有一种感觉,因为 Java 是开放的,我应该可以查看 Class 定义,但我还没有弄清楚如何做到这一点。
谢谢!
【问题讨论】:
-
您尝试过 Google ArrayList 吗?
-
是的,我只得到了关于如何使用它、何时使用它以及方法/属性是什么的结果。我想知道底层数据结构是什么样的。它是一个数组还是一个列表,或者两者兼而有之。
-
按逻辑,我假设 ArrayList 是 List 的更具体版本。它的结构是一个 List,但它的方法类似于 Array 的方法。
-
您可以在 IDE 中查看
ArrayList源代码(在 IntelliJ 中,在代码中选择ArrayList,然后 CTRL + 鼠标左键单击)。您会看到ArrayList本质上是一个包装好的Object[],其中包含许多方便的插入、删除等方法。 -
谢谢@pbabcdefp!这就是我要找的东西!
标签: java arrays arraylist data-structures linked-list