1、ArrayList和LinkedList区别?
ArrayList是容量可以改变的非线程安全集合。内部实现使用数组进行存储,集合扩容时会创建更大的数组空间,把原有数据复制到新数组中。ArrayList支持对元素的快速随机访问,但是插入与删除时速度通常很慢,因为这个过程很有可能需要移动其他元素。
LinkedList的本质是双向链表。与ArrayList相比,LinkedList的插入和删除速度更快,但是随机访问速度则很慢。测试表明,对于10万条的数据,与ArrayList相比,随机提取元素时存在数百倍的差距。除继承AbstractList抽象类外,LinkedList还实现了另一个接口Deque,即double-ended queue。这个接口同时具有队列和栈的性质。LinkedList包含3个重要的成员:size、first、last。size是双向链表中节点的个数。first和last分别指向第一个和最后一个节点的引用。LinkedList的优点在于可以将零散的内存单元通过附加引用的方式关联起来,形成按链路顺序查找的线性结构,内存利用率较高。【1】
......
【1】《码出高效:Java 开发手册》
本文主要探讨Java中ArrayList和LinkedList的区别。ArrayList是非线程安全集合,内部用数组存储,支持快速随机访问,但插入和删除慢;LinkedList本质是双向链表,插入和删除速度快,随机访问慢,还实现了Deque接口,内存利用率较高。
1775

被折叠的 条评论
为什么被折叠?



