ArrayList相关_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > ArrayList相关

ArrayList相关

 2018/3/13 0:47:36  chen.zhu  程序员俱乐部  我要评论(0)
  • 摘要:ArrayList相关源码解析转载自(已经很详细):http://blog.csdn.net/u010887744/article/details/49496093ArrayList常见的面试题转载自:https://www.cnblogs.com/softidea/p/6410680.html总结:ArrayList是基于动态数组进行实现的。适合做查询,因为存在下标,不适合做增加和删除,因为会进行数组的复制,然后调用System.arrayCopy()方法,特别消耗资源。因此
  • 标签:list
ArrayList相关

源码解析转载自(已经很详细):http://blog.csdn.net/u010887744/article/details/49496093

ArrayList常见的面试题转载自:https://www.cnblogs.com/softidea/p/6410680.html

总结:
ArrayList是基于动态数组进行实现的。适合做查询,因为存在下标,不适合做增加和删除,因为会进行数组的复制,然后调用System.arrayCopy( )方法,特别消耗资源。
因此:对数据做查询操作多于增加和caozuo.html" target="_blank">删除操作时,ArrayList比较适合。

question1:是如何基于动态数组的?
        ArrayList的add操作首先会对数组进行检查,判断数组中的数+1是否大于其默认值10,若不大于则不进行扩容操作,若大于10,则会进行+1的扩容操作,然后底层调用System.arrayCopy( )将原数据复制到新数据进行扩容。
remove操作会将数据中的-1,容量大于10,会进行缩容操作,调用trimToSize( )恢复到10,容易=10,不会进行此操作。
注:System.arrayCopy( )会特别的消耗资源,因此ArrayList不适合做增加和删除操作。
上一篇: Java 线程池源码分析 下一篇: 没有下一篇了!
发表评论
用户名: 匿名