链表与顺序表
顺序表
顺序表最大的好处:支持O(1)时间复杂度的随机访问(下标访问)
1.不容易有内存碎片
2.对缓存更友好
3.单个数据而言,空间更节省(空间连续)
缺点:
1.中间或前面部分的插入删除时间复杂度O(N)
2.增容的代价比较大
链表
链表是一种物理存储单元上非连续的一种数据结构,看名字我们就知道他是一种链式的结构,就像一群人手牵着手一样。链表有单向的,双向的,还有环形的。
链表最大的好处:头插/尾插/头删/尾删 时间复杂度O(1)
1.如果数据比较大了,不需要预留空间(没有增容问题,插入一个开辟一个空间)
缺点:
以结点为单位存储,不支持随机访问
java.util.ArrayList; 顺序表(语言支持的顺序表)
java.util.LinkedList; 链表(语言支持的链表)
ArrayList<元素类型名称>
变量类型 类类型的引用
ArrayList<Person>
ArrayList<Integer> //保存的是 int 的包装类