2026/2/14 14:45:02
网站建设
项目流程
网站建设管理分工,牌子网官网,有用的网站地址,成都快速建网站ArrayList总结1.ArrayList的底层数据结构基于动态数组#xff0c;连续内存存储#xff0c;适合下标访问(随机访问)2.扩容机制#xff1a;因为数组长度固定#xff0c;超出长度存数据时想要新建数组#xff0c;然后把老数组中的数据拷贝到新数组3.如果不是尾部插入数据还会…ArrayList总结1.ArrayList的底层数据结构基于动态数组连续内存存储适合下标访问(随机访问)2.扩容机制因为数组长度固定超出长度存数据时想要新建数组然后把老数组中的数据拷贝到新数组3.如果不是尾部插入数据还会涉及到元素的移动使用尾插法并指定初始容量可以极大提升性能甚至超过LinkedList(LinkedList插入元素需要创建大量的node对象)ArrayList底层的数据结构是一个elementData数组LinkedList总结基于双向链表可以存储在分散的内存中适合做数据插入及删除操作尾部插入和ArrayList差不多LinkedList不存在扩容问题遍历LinkedList必须使用iterator不能使用for循环因为每次for循环内部通过get(i)取得某一元素时都需要对LinkedList重新进行遍历性能消耗极大。LinkedList底层数据结构是双向链表当我向LinkedList中添加元素的时候元素会被包装成一个node对象node中有一个next(下一个节点)和prev(上一个节点)的两个指针被称为双向链表区别1.ArrayList存储的时候要求数据都是挨在一起的连续的LinkedList的数据可东一块西一块只要用指针串起来就好了2.ArrayList可以下标访问LinkedList不可以下标访问最推荐通过迭代器进行访问如果使用for性能消耗极大3.⾸先他们的底层数据结构不同ArrayList底层是基于数组实现的LinkedList底层是基于链表实现的4.由于底层数据结构不同他们所适⽤的场景也不同ArrayList更适合随机查找LinkedList更适合删除和添加查询、添加、删除的时间复杂度不同5.另外ArrayList和LinkedList都实现了List接⼝但是LinkedList还额外实现了Deque接⼝所以LinkedList还可以当做队列来使⽤