javase part17 - 集合框架1
2017-11-28 本文已影响0人
不再饿肚子给人送饭
Vector 底层依然是一个Object数组,包含了对数组的增删该查操作
JDK1.1/1.0 时期都是使用Vector
Vector 和ArrayList的关系
1.底层算法都是基于数组的
2.ArrayList是集合框架里提供的新的变长数组,Vector 是ArrayList 的前身
3.Vector 相对于ArrayList 是同步的,性能较低
ArrayList 源码
1.png
Vector 源码
2.png
在集合中不能存储基本数据类型,只能存引用数据类型
jdk1.5 之前手动装箱:
集合对象.add(Integer.valueOf(1));
1.5 之后:
集合对象.add(1);
Vector 和 ArrayList 能否存储相同的元素
能否保证添加的顺序
因为这两个类底层都是使用数组实现的,而数组使用索引来区别元素的存储位置,所以元素可以相同,这两个都是有序的
ArrayList扩容问题:
public ArrayList():在Java7之前,和Java7开始不一样.
在Java7之前,默认创建的是一个容量为10的数组. 底层: this(10);
而从Java7开始,默认创建的是一个没有元素的空数组. 底层: new Object[]{};
虽然,此时创建的是一个没有元素的空数组,当第一次使用add方法的时候,此时才设定初始容量为10.