在日常应用中ArrayList和LinkedListza9i数据存储时会被经常使用,那么,作为同样继承了List接口的这两者之间又有什么区别呢?
【1】首先,我们可以从名称上来看,猜测一下也能猜得差不多了。
ArrayList类的底层是用一个动态数组(array)来实现的,而LinkedList的底层则是一个链表,而且因为实现了Deque接口,LinkedList底层的链表还是一个双向链表。
【2】知道了这两者的底层实现方式,我们就可以根据这个进行思考,一个数组在内存中是连续存储的,知道数组首地址后我们便可以通过其下标来访问存储元素,同样的,要访问一个链表中的元素,我们只能从head开始一路查找下去,这时候的效率自然是不够高的。因此我们可一总结一下,在ArrayList中,随机访问数据元素的速度是比LinkedList快的。
【3】按照上一点的思路继续思考,往数据结构中添加元素或者删除元素时,动态数组t需要考虑动态数组的容量问题,但是单链表却不用,因此在数据的增加删除操作中,LinkedList的速度明显是比较快的。
1万+



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



