ArrayList与LinkedList的区别

ArrayList:数据结构—基于动态数组的,在内存中是连续内存存储的,所以适合下标访问(随机访问),扩容机制:因为数组的长度是固定的,超出长度时需要重新创建数组,将老数组的数据拷贝到新数组中去,如果不是尾部插入数据的话还要涉及到元素的移动,从尾部开始,将元素依次往后复制,如果使用的是尾部插入法的话并指定初始容量时可以极大的提升性能,甚至超过LinkedList(需要创建大量的node对象)

LinkedList:数据结构—基于链表,在内存中是分散的内存存储的,适合插入和删除操作,不适合查询,原因是需要逐一遍历,每个元素只知道前后元素的位置。遍历时避免使用for循环,每一次for循环都会遍历整个list,性能消耗极大,另外不要试图使用indexOf等返回元素的索引,并利用其进行遍历,使用indexOf时对list进行了遍历,当结果为空时也会遍历整个列表。

posted @ 2022-05-08 19:39  W_k  阅读(27)  评论(0)    收藏  举报