日期:2014-05-20  浏览次数:20612 次

数组与ArrayList的真正区别(新手问题,勿喷)
    既然ArrayList底层是用数组实现的,那么它和数组的区别在哪里?或者说最大的好处在哪里?
arraylist 数组

------解决方案--------------------
数组高效但是其容量固定且无法动态改变;
ArrayList:容量可动态改变但牺牲效率;

------解决方案--------------------
ArrayList:容量可动态增长;但牺牲效率。
------解决方案--------------------
ArrayList底层是变长数组维护的,不需要定义其大小,如果长度不够了就会自动扩展为原来长度的一倍,数组的大小在定义的时候已经是个固定的值,不会自动扩展,数组的效率比集合的效率高,各有侧重点。
------解决方案--------------------
ArrayList可以自动增长。
------解决方案--------------------
楼上解释很好,
------解决方案--------------------
最大的好处就在于ArrayList不需要定义长度,可动态添加,如果是知道长度的,还是用数组比较好。
------解决方案--------------------
容器是长度可变的,用来装数据的,数组则是给定大小后就不能在改变了,长度不够就得再复制到另一个比较长的新数组中再使用。
------解决方案--------------------
数组长度不可以改变,ArrayList没有限制,可以动态的添加数据进去。
------解决方案--------------------
你也知道List是数组实现的,扩展一下吧,你觉得HashMap是什么实现的呢?
List中删除一个元素长度就会减少,那么数组中定义好了如何删除元素呢?
你可以想象,构建另一个少一个元素的数组来代替这个老数组,就是这原理。。
------解决方案--------------------
楼上这些的答案可以让你满意了
------解决方案--------------------
最大的好处就是你不需要重新写个ArrayList,你需要数组的时候ArrayList提供toArray()是最快的
------解决方案--------------------
数组是固定长度的…ArrayList长度随数据的删减而改变…
------解决方案--------------------
ArrayList底层为数组,所以两者一样,,数组最大的缺点是长度不可改变。。只不过ArrayList是封装好的,它里面有写好的方法,长度可以动态改变
------解决方案--------------------

------解决方案--------------------
原来是这样,怪不得不用定义长度了···
------解决方案--------------------
ArrayList封装了array提供了很多实用的方法如add,remove。如果用单纯的array,add、remove都需要自己写,很麻烦
------解决方案--------------------
数组的长度是固定的 ArrayList的长度可变
------解决方案--------------------
ArrayList等容器类的设计就是为了解决数组长度必须是固定的这一局限性的,利用ArrayList等容器类就可以存储任意数量的元素了,即可以动态增长.
------解决方案--------------------
就是多了一层封装,提供更方便的接口让开人员使用。
------解决方案--------------------
把.net的拿来了。

Java目前没有多维数组的原生支持,只有数组的数组。