常见Java数据结构&优缺点
数组
优点:查询快,如果知道索引可以快速地存取
缺点:删除慢,大小固定
有序数组
优点:比无序数组查找快
缺点:删除和插入慢,大小固定
栈
优点:提供后进先出的存取方式
缺点:存取其他项很慢
队列
优点:提供先进先出的存取方式
缺点:存取其他项都很慢
链表
优点:插入快,删除快
缺点:查找慢(一个个节点查)
二叉树
优点:查找,插入,删除都快(平衡二叉树)
缺点:删除算法复杂
红-黑树
优点:查找,插入,删除都快,树总是平衡的(局部调整)
缺点:算法复杂
2-3-4树
优点:查找,插入,删除都快,树总是平衡的。类似的树对磁盘存储有用
缺点:算法复杂
哈希表
优点:如果关键字已知则存取速度极快,插入快
缺点:删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分
堆
优点:插入,删除快,对最大数据的项存取很快
缺点:对其他数据项存取很慢
图
优点:对现实世界建模
缺点:有些算法慢且复杂