- ArrayList和LinkedList的区别?
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList 要移动数据。
同步
ArrayList和LinkedList也是不安全
初始化大小和 扩容机制
1.ArrayList
ArrayList 初始化大小是 10 (如果你知道你的arrayList 会达到多少容量,可以在初始化的时候就指定,能节省扩容的性能开支)
扩容点规则是,新增的时候发现容量不够用了,就去扩容
扩容大小规则是,扩容后的大小= 原始大小+原始大小/2 + 1。(例如:原始大小是 10 ,扩容后的大小就是 10 + 5+1 = 16)
2.linkedList
linkedList 是一个双向链表,没有初始化大小,也没有扩容的机制,就是一直在前面或者后面新增就好。
对于双向链表的理解
本文深入对比了ArrayList和LinkedList两种数据结构的特点。ArrayList基于动态数组,适用于随机访问,但扩容时性能开销大;LinkedList基于链表,适合频繁的插入删除操作,但随机访问效率低。文章还详细解析了它们的初始化大小、扩容机制及安全性。
1398

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



