Java常见问题(十一):ArrayList和LinkedList有哪些区别?
题目分析:ArrayList和LinkedList首先明白它们所属集合,再从底层结构上引申其特性。
【答案】
集合可以从接口上分类:
ArrayList和LinkedList集合同属List接口,区别总结如下:
-
底层结构:
ArrayList使用了动态数组实现,实质上是一个动态数组; LinkedList底层使用了双向链表实现,可当作堆栈、队列、双端队列使用。 -
底层结构决定了优势:
ArrayList在随机存取方面效率高于LinkedList;LinkedList在节点的增删方面效率高于ArrayList。 -
底层结构决定了缺陷:
ArrayList必须预留一定的空间,当空间不足的时候,会进行扩容操作,LinkedList的开销是必须存储节点的信息以及节点的指针信息。
【题目拓展】
暂无