集合(链表和数组的区别)

来源:互联网 发布:淘宝网管控记录 编辑:程序博客网 时间:2024/06/04 18:25
  1. 数组静态分配内存,链表动态分配内存;
  2. 数组在内存中连续,链表不连续;
  3. 数组元素在栈区,链表元素在堆区;
  4. 数组利用下标定位,时间复杂度为O(1),链表利用引用定位元素时间复杂度O(n);
  5. 数组插入或删除元素的时间复杂度O(n),链表的时间复杂度 O(1)。

总结:
如果是数据数量不发生变化,就使用数组;如果数据数量经常发生变化,就使用动态数组(ArrayList、vector)或双向链表LinkedList;如果查询多,而插入删除少,使用ArrayList,如果查询少,而插入删除操作多,则使用LinkedList

原创粉丝点击