Java基础数据结构(1)

ArrayList和LinkedList的区别

  1. ArrayList是实现了基于动态数组的数据结构,如果内存不够,进行1.5倍扩容。而LinkedList是基于链表的数据结构,LinkedList是个双向链表,它同样可以被当作栈、队列或双端队列来使用
  2. 对于随机访问get和set,ArrayList要优于LinkedList,因为LinkedList要移动指针。ArrayList想要get(int index)元素时,直接返回index位置上的元素,而LinkedList需要通过for循环进行查找。
  3. 对于添加和删除操作add和remove, ArrayList想要在指定位置插入或删除元素时,主要耗时的是System.arraycopy动作,会移动index后面所有的元素;LinkedList主耗时的是要先通过for循环找到index,然后直接插入或删除,无法判断谁快谁慢。当插入的数据量很小时,两者区别不太大,当插入的数据量大时,大约在容量的1/10之前,LinkedList会优于ArrayList,在其后就劣与ArrayList,且越靠近后面越差。但如果是头增或者尾插,就可以比较出他们的时间复杂度
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值