欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

java中ArrayList与LinkedList的原理及区别,

来源: javaer 分享于  点击 47717 次 点评:228

java中ArrayList与LinkedList的原理及区别,


ArrayList

ArrayList实现原理就是动态数组,为什么叫动态数组呢,就是当ArrayList容量扩大时,底层的数组的容量会自动扩大50%,并且ArrayList是线程不安全的。
其优点是查询消耗的时间短,属于随机查询。而相对于LinkedList而言它的添加、删除操作要更耗时。
对于ArrayList在存储大量数据时会大量浪费很多空间,原因就是数组的起始容量为10,当数组要增长时增长公式(newcapacity=(oldcapacity*3)/2+1),相当于增加的50%,这样就会浪费大量空间,如果在你知道你要存储数据的容量前提下,最好声明容量大小。也可以使用trimToSize去掉多余的空间。

LinkedList

LinkedList的实现原理基于链表。其优点就是方便添加和删除元素,而arraylist的优点恰恰的LinkedList的缺点,其查询方法消耗的时间要大于arraylist。    

总体上来看,如果你需要做大量的查询工作建议你使用ArrayList,如果需要做大量的添加、删除工作建议使用LinkedList.

相关文章

    暂无相关文章

用户点评