常见Java数据结构&优缺点


数组

优点:查询快,如果知道索引可以快速地存取

 

缺点:删除慢,大小固定

 

 

有序数组

 

优点:比无序数组查找快

 

缺点:删除和插入慢,大小固定

 

 

优点:提供后进先出的存取方式

 

缺点:存取其他项很慢

 

队列

 

优点:提供先进先出的存取方式

 

缺点:存取其他项都很慢

 

链表

 

优点:插入快,删除快

 

缺点:查找慢(一个个节点查)

 

二叉树

 

优点:查找,插入,删除都快(平衡二叉树)

 

缺点:删除算法复杂

 

红-黑树

 

优点:查找,插入,删除都快,树总是平衡的(局部调整)

 

缺点:算法复杂

B+树

叶子节点是一个链表,从root到叶子节点的中间节点就是Index,查询和删除的速度取决于树的高度,插入比较麻烦,因为有分裂的问题,但是也比平移所有数组下标快

优点:查找,插入,删除速度比较快

缺点:插入比较麻烦

2-3-4树

优点:查找,插入,删除都快,树总是平衡的。类似的树对磁盘存储有用

 

缺点:算法复杂

 

哈希表

 

优点:如果关键字已知则存取速度极快,插入快

 

缺点:删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分

 

 

优点:插入,删除快,对最大数据的项存取很快

 

缺点:对其他数据项存取很慢

 

 

优点:对现实世界建模

 

缺点:有些算法慢且复杂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值