数据结构的对比


数组和链表的优缺点,: 数组的内存空间是连续的,链表的内存结构是不连续的内存空间
    数组:
        优点:数组支持随机访问,根据下标随机访问的时间复杂度为O(1),
        缺点:
        1)插入、删除的时间复杂度是O(n)
        2)若申请内存空间很大,比如100M,但若内存空间没有100M的连续空间时,则会申请失败,尽管内存可用空间超过100M。
        3)大小固定,若存储空间不足,需进行扩容,一旦扩容就要进行数据复制,而这时非常费时的。
    链表:
        优点:链表适合插入、 删除,时间复杂度O(1)    
        缺点:
            1)随机访问的时间复杂端是O(n)
            2)内存空间消耗更大,因为需要额外的空间存储指针信息。
            3)对链表进行频繁的插入和删除操作,会导致频繁的内存申请和释放,容易造成内存碎片,如果是Java语言,还可能会造成频繁的GC(自动垃圾回收器)操作。

ArrayList的优势:
    将很多数组操作的细节封装起来。 比如前面提到的数组插入、 删除数据时需要搬移其他数据等。
    支持动态扩容。
    arraylist里可以同时存放不同类型的对象(自己加的)
ArrayList的劣势:
    1.Java ArrayList无法存储基本类型,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值