ArrayList和LinkedList对比
摘要:通过这两天阅读ArrayList和LinkedList源码发现两者的异同:ps:两个类的源码我之前已经发出。
同:
一、都实现了List接口
二、ArrayList和LinkedList都不是线程安全的。
异:
一、 ArrayList是个可变长的数组,对数据进行读取速度非常快,直接取出数组的下标对应的值。
LinkedList是双向链表,对数据读取效率较低,他需要从第一个指针位置或最后一个指针(若下标小于LinkedList的二分之一,则从前往后找,否则从后往前找)位置遍历,找到对应位置的元素值。
二、 ArrayList对数据进行写操作效率较低,每次更改元素,都需要进行检查是否需要进行扩容(1.5倍),然后在进行数组的复制操作。
LinkedList对数据进行写操作效率较高,每次更改元素,直接移动指针,定位到目标,将其设置为null。
{:1_918:}你也是凶,名字就叫空指针. 说得好,我选hashMap 学习了,谢谢分享 昨天面试,问题中就有这个! 再介绍一下concurrentHashMap啊 来复习一下 哈哈 List, Set, Map
list set都继承了Collection接口
ArrarList读取速度快,有序的,元素可以重复。写操作效率低
LinkedList读取效率低,双向链表,所以编辑速度快,容易定位和断链和挂链
Set元素不可重复,自带排序
其实一般开发中,用的最多的应该是Map和List了
{:1_902:}mmmmm
页:
[1]