ArrayList与LinkedList在添加与删除时谁的效率更高?一直认为在频繁的添加与删除应用中应该使用LinkedList。前几天看了一本书,里面说其实在数据量比较大时添加与删除ArrayList的效率更高。我在自己的机器上跑了一遍,首先在ArrayList与LinkedLis中分别存储10000个数据,然后分别随机的添加与删除1000个数据,发现无论是添加还是删除ArrayList使用的时间都相对较少。
分析:无论是添加还是删除,都需要走两个过程:查找到位置,然后添加或者删除
使用ArrayList时因为是使用的是一块连续的内存,查找的时间可以忽略不计,大家认为ArrayList效率低的原因是每添加一个元素,其后面的元素都要后移一位,而LinkedList只需要修改一下后一个元素的引用即可。而事实时LinkedList在插入之前也需要先查找需要插入的位置,而这个过程是比较费时间的,尽管不需要再将其他元素进行移动,当数据量较大时频繁的删除与添加还是ArrayList效率较高。
说的有点乱,请大神斧正
分析:无论是添加还是删除,都需要走两个过程:查找到位置,然后添加或者删除
使用ArrayList时因为是使用的是一块连续的内存,查找的时间可以忽略不计,大家认为ArrayList效率低的原因是每添加一个元素,其后面的元素都要后移一位,而LinkedList只需要修改一下后一个元素的引用即可。而事实时LinkedList在插入之前也需要先查找需要插入的位置,而这个过程是比较费时间的,尽管不需要再将其他元素进行移动,当数据量较大时频繁的删除与添加还是ArrayList效率较高。
说的有点乱,请大神斧正