javase part17 - 集合框架1

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.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容