您的位置:首页 > 编程语言 > Java开发

Vector、ArrayList和LinkedList

2018-04-01 21:30 274 查看
List中元素有序,且是可以重复的。(有序是指元素存入的先后顺序与输出的先后顺序是一致的)
Vector

    内部是数组数据结构,是线程安全的。是最早出现的list接口(现在几乎不怎么使用)。Vector是百分百延长数组,即新数组的长度是原来数组长度的2倍。
ArrayList
    内部是数组结构,是线程不安全的。替代了Vector,遇到多线程情况,可以通过加锁来实现线程安全。ArrayList是百分之五十延长,即新数组的长度是原来数组长度的1.5倍,效率比Vector高,浪费空间较少。查询速度快。(ArrayList使用new操作初始化时会构造一个初始容量为10的空列表, ArrayList中add方法添加的都是Object,可以添加任何类型的对象,但是最终都会被提升为Object类型,因此在取出元素时,需要进行类型的强转,即Object类型转换为本来的类型)
LinkedList
    内部是链表结构的,是线程不安全的,但是效率高。List中除了Vector都是不安全的。增删元素特别快。
注意:

数组长度可变的原理是创建一个新数组,将原来的数组内容复制到新数组中去,增加数组的长度。
ArrayList和LinkedList的查询功能都是从第一个元素开始,但是ArrayList中所有元素是存储在同一内存区的,遍历速度快,而LinkedList中的所有元素并不是存储在同一内存区,所以速度很慢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础知识