看了很多别人博客里写的,感觉写的都是些理论的说法,自己还是不是很清楚,所以自己简单的写一下,本人菜鸟希望大牛们指导
List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链表
ArrayList:内存使用量要大一些,添加删除元素效率较低。元素随机访问的效率较高。
LinkedList则相反
LinkedList因为成员方法大多是synchronized的,因此LinkedList是线程安全的而ArrayList不是线程安全的
也是因此在单线程程序中ArrayList效率更高..
ArrayList和LinkedList在性能上各有优缺点,都有各自所适用的地方,总的说来可以描述如下:
性能总结:
- | add()操作 | delete()操作 | insert操作 | index取值操作 | iterator取值操作 |
---|---|---|---|---|---|
ArrayList/Vector/Stack | 好 | 差 | 差 | 极优 | 极优 |
LinkedList | 好 | 好 | 好 | 差 | 极优 |