数据结构:存放数据的方式
数组 链表 栈 队列 二叉树
1.顺序结构:(ArrayList)
1)底层实现:数组
2)特点:
a.按照顺序排序,并且每个元素都带有标号
b.除了标号是连续的,内存中的物理空间也是连续的
3)功能:
增加 - 存储数据 add()
删除 - 删除数据 remove()
修改 - 修改数据 set()
查看 - 获得数据 get()
4)优缺点:
优点:因为有下标,所以查询速度快
缺点:
插入/删除效率低
因为需要连续的物理内存空间,对空间使用率相对较低,非常占用空间
2.链式结构:(LinkedList)
1)底层数据结构:链表
2)底层实现:Node(节点) -> (data(数据) + next(下一个节点的引用))
3)特点:
a.链表的内存是连续的,但是物理内存空间不是连续的,应用率高
b.操作的是Node(data + next)
c.所有操作都必须从头节点开始,并且头节点不存数据
4)几种不同的链表
a.单向链表
特点:Node-next,只能从头开始往下找
b.双向链表
特点:Node-next,可以从头开始往下找,也可以从尾往前找
头结点:不存数据,没有next
尾结点:不存数据,没有pre
c.循环链表
特点:Node-next,尾节点(有data数据的节点)指向头节点,可以在任意位置开始,都可以获取到想要的元素
总结:
顺序结构 + 链式结构 -> 线性结构(固定顺序)