日常开发中,保存一组数据使用的最多的是List,List子类用的最多的是 ArrayList, 其次就是 LinkedList 。
我们知道 ArrayList 是以数组实现的,遍历时很快,但是插入、删除时都需要移动后面的元素,效率略差些。而LinkedList 是以链表实现的,插入、删除时只需要改变前后两个节点指针指向即可,所以插入、删除效率比较快,查询慢。
ListedList底层是双链表结构,他还添加了作用栈、队列或双端队列的方法。
0----------0------------0----------------0--------------0
这种双链表的结构,在增加、删除的时候速度比ArrayList,但是查询遍历导致慢。
分配内存空间不是必须是连续的;
插入、删除操作很快,只要修改前后指针就OK了,时间复杂度为O(1);
访问比较慢,必须得从第一个元素开始遍历,时间复杂度为O(n)
------------队列(先进先出)
https://www.cnblogs.com/malw/p/10697319.html
------------栈(后进先出)
https://blog.csdn.net/wingzzf/article/details/54573811