10.ArrayList,LinkedList集合

 

ArrayList中add方法的复制操作

 

1.如图,先新建了一个list数组,长度为0

2.调用add方法后,通过arrays工具类中的copy方法把这个list数组的长度增加为10

 

结论:在创建数组时最好定义一个初始化数组容量。因为在第一次调用add方法时会进行一堆方法的执行,甚至还调用了System.ArrayCopy这个JNI来执行数组的复制,会消耗大量的cpu。

 

 

Arraylist和Linkedlist的区别

 

Arraylist的底层用数组实现,它的初始值为10增长因子为0.5。因为arraylist是由顺序表实现的,所以在进行增删改操作时要挪位置,删除的时候如果是最后一位不用挪位置,如果不是把其他的位置往前移。(查找的时间复杂度的为O(1),增删改的时间复杂度为O(n))

 


Linkedlist底层用链表来实现,链表根据指针逐一循环查找,所以查找效率低;当它删除时,只需要把链断开,再连接上,所以删除效率高。(查找的时间复杂度的为O(n),增删改的时间复杂度为O(1))

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值