List:有序,可重复,有索引。
|--ArrayList:底层是数组数据结构。是线程不同步的。查询元素的速度很快。但是增删元素的效率稍低。
|--LinkedList:底层是链表数据结构,是线程不同步的。查询元素的速度稍慢,但是增删速度很快。
|--Vector:底层也是数组数据结构。是线程同步的。被ArrayList替代了。查询速度,和增删的速度非常慢。效率低。
可变长度的数组的原理:
当默认长度为10的数组不够存储时,会建立一个新数组。
将原来数组中的元素复制到新数组中。把后面添加进来的元素存储到新数组中。
ArrayList:创建新数组是50%延长
Vector:创建新数组是100%延长。
所以ArrayList比Vector效率高。
|--ArrayList:底层是数组数据结构。是线程不同步的。查询元素的速度很快。但是增删元素的效率稍低。
|--LinkedList:底层是链表数据结构,是线程不同步的。查询元素的速度稍慢,但是增删速度很快。
|--Vector:底层也是数组数据结构。是线程同步的。被ArrayList替代了。查询速度,和增删的速度非常慢。效率低。
可变长度的数组的原理:
当默认长度为10的数组不够存储时,会建立一个新数组。
将原来数组中的元素复制到新数组中。把后面添加进来的元素存储到新数组中。
ArrayList:创建新数组是50%延长
Vector:创建新数组是100%延长。
所以ArrayList比Vector效率高。