【发布时间】:2019-01-21 23:47:23
【问题描述】:
我正在查看THIS 对一个流行的 Java 问题的回答。我知道 X 数据类型的 ArrayList 的好处是 get(5) 应该是即时的,因为找到第 5 个元素只是在您必须实际访问任何数据之前在数组中向前移动 5 个数据类型单位的问题. LinkedList 需要访问每个节点的数据以查找下一个节点的位置,并继续此过程直到到达第 5 步。这就是为什么 ArrayList 在检索数据方面优于 LinkedList 的原因。
但是,如果数据类型的大小是可变的怎么办?如果我声明一个带有Object 类型参数的 ArrayList,这样我就可以在 ArrayList 中添加一个 char(1 字节)和一个 int(4 字节)怎么办? ArrayList 怎么知道下一个元素在哪里,因为它不能只是向前移动(sizeOfDatatype * steps) 直到它到达它的目标?是否会将数据存储为可用的最大数据类型,例如对齐方式?
【问题讨论】: