Java提供了两个类ArrayList和LinkedList,ArrayList的内部实现是基于内部数组Object[],ArrayList概念上更像数组,LinkedList内部实现是基于一组连接的记录,概念上更像链表 数组
大体总结: 安全
1.ArrayList实现了基于动态数组,LinkedList基于链表结构 性能
2.在后面添加数据,更倾向于ArrayList,在中间添加或者删除数据,更倾向于LinkedList spa
3.对于get和set,ArrayList优于LinkedList,由于LinkedList沿着连接的一端查找下去 线程
4.对于add和remove,LinkedList优于ArrayList,由于ArrayList要移动数据 rem
5.ArrayList和LinkedList都是线程不安全的 get
ArrayList与Vector的功能是类似的,ArrayList是线程不安全的,Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),所以ArrayList的性能比Vector要好 同步
当ArrayList和Vector的元素达到初始化的大小时,Vector会将它的容量翻倍,ArrayList增长50%,ArrayList更有利于节省空间 thread