数组(Array):
优点:查询快,通过索引直接查找;有序添加,添加速度快,允许重复
缺点:在中间部位添加、删除比较复杂,大小固定,只能存储一种类型的数据
如果应用需要快速访问数据,很少插入和删除元素,就应该用数组。
链表(LinkedList):
优点:有序添加、增删改速度快,对于链表数据结构,增加和删除只要修改元素中的指针就可以了
缺点:查询慢,如果要访问链表中一个元素,就需要从第一个元素开始查找
如果应用需要经常插入和删除元素,就应该用链表。
栈(Stack):
优点:提供后进先出的存储方式,添加速度快,允许重复
缺点:只能在一头操作数据,存取其他项很慢
队列(Queue):
优点:提供先进先出的存储方式,添加速度快,允许重复
缺点:只能在一头添加,另一头获取,存取其他项很慢
总结:
- 数组:查询快、插入删除慢,大小固定。适合多查询少修改的应用
- 链表:有序、增删改查速度快,查询慢,需要从头开始遍历。适合多插入、删除少查询的应用
- 栈:前进后出,添加速度快,只能一端操作数据。
- 队列:前进先出,添加速度快,可能两端操作数据。