如果要求不明确,为什么要使用ArrayList?

时间:2017-05-31 04:13:17

标签: java arraylist

我在www.javatpoint.com上发现了以下问题 如果您要使用List实现,但不确定哪一个,因为要求尚不清楚。在这种情况下,您将使用List实现?
选项: 1. ArrayList 2. LinkedList

对此的正确答案是ArrayList
但是没有解释原因,请帮助我理解

4 个答案:

答案 0 :(得分:0)

一个可能的原因可能是ArrayList中的元素比LinkedList占用更少的内存空间,因为LinkedList中的每个元素都包含一个值加上指向下一个元素的指针,而ArrayList中的元素只有值

答案 1 :(得分:0)

ArrayList以插入顺序存储数组中的元素。您可以通过数组中的索引获取值。

LinkedList将您的元素存储在相互引用的Node对象中。每个节点引用上一个和下一个节点。您可以从两侧开始按顺序获取元素。您也可以通过索引获取元素,但它不像ArrayList那样快。需要顺序访问时使用LinkedList,如队列或堆栈数据结构

答案 2 :(得分:0)

从我过去读到的内容:ArrayList本质上是一个更好的数组,允许动态调整大小。 LinkedList是double linked list,这使得它在添加和删除列表中的项目时具有更好的性能,但是在任意位置获取和设置 比ArrayList慢。所以,问题很可能是假设一般来说,一个程序将获得并设置更多的值而不是添加和删除值,这是一个相当合理的假设,但问题是不正确的。

答案 3 :(得分:0)

简单术语

ArrayList:迭代ArrayList比链接列表更快,因为所有元素都存储在连续的内存位置。但执行操作就像删除会降低性能,因为再次整个列表顺序更改(就像删除位置3处的元素,然后所有下一个元素位置都是currentLocation - 1)。

LinkedList:执行迭代时更慢(与ArrayList比较)。但删除和更新操作变得更快因为如果删除任何位置的任何元素,只会更改元素位置之前和之后(非整个列表)。

所以,当你没有明确要求时,迭代就是基本需求(并且数组列表可以提供最佳性能)。