ArrayList、Vector、LinkedList区别

来源:互联网 发布:电子数据交换 编辑:程序博客网 时间:2024/06/06 02:29

关于这三者的区别,很久之前的时候已经懂了。但是,如果要在面试的时候,准确说出来还是有一定难度。特别是,最近几回都是打酱油去裸考的……

好吧,现在就自己粗浅的理解,谈谈吧……

ArrayList和Vector应该可以归到一类上去。因为,两者底层都是借着一个数组的,所以显然易见,两者通过索引号(也就是说,所谓的数组下标)可以轻易地检索到索引号所指示的元素;但是若然需要增/删、修改元素就会显得十分吃力。而两者的区别在于,Vector的方法很多都是同步方法,而ArrayList不是,所以,Vector就是所谓的线程安全,而Arraylist不是。而关于解决线程安全问题,个人认为使用同步的方式显得过时了,可以参考使用LocalThread.!!!!!!!!!!大笑

LinkedList底层不是数组,而是类似c语言中的双向链表。因为java中没有指针,所以,指针在这里换成引用罢了。如同双向链表,增删修改元素是他的强项,查找变成了鸡肋。

好吧,就这么多!随便谈谈而已,欢迎拍砖!

0 0
原创粉丝点击