JAVA ARRAY 和ArrayList

1) 精辟阐述: 能够讲ArrayList想象成“会自动扩增容量的Array”,Array最高效,但其容量固定且不能动态改变
数组

                    ArrayList 牺牲效率,能够动态扩容
spa

2) 基于类型和效率校验,应尽量使用Array,没法肯定数组大小时才使用ArrayListorm

    Array的功能可能过于受限
对象



细节:it

1)效率:
数组扩容是对ArrayList效率影响比较大的一个因素。
每当执行AddAddRangeInsertInsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,若是是,它就会以当前容量的两倍来从新构建一个数组,将旧元素Copy到新数组中,而后丢弃旧数组,在这个临界点的扩容操做,应该来讲是比较影响效率的。编译

ArrayListArray的复杂版本
ArrayList内部封装了一个Object类型的数组,从通常的意义来讲,它和数组没有本质的差异,甚至于ArrayList的许多方法,如IndexIndexOfContainsSort等都是在内部数组的基础上直接调用Array的对应方法。
效率


2)类型识别:
ArrayList存入对象时,抛弃类型信息,全部对象屏蔽为Object,编译时不检查类型,可是运行时会报错。
ArrayList与Array的区别主要就是因为动态增容的效率问题了
基础

相关文章
相关标签/搜索