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.
上一篇下一篇

猜你喜欢

热点阅读