概念
- JDK1.8对于Vector类的继承和实现关系如下
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
- 学习Vector类一定要跟Arraylist类做对比,JDK1.8对于ArrayList类的继承和实现关系如下:
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
- 通过以上两点可以看出,Vector和ArrayList的继承和实现关系一模一样,那么他们的主要区别是什么呢?
这里面源码文档写了很多,细节请看源码文档。我这里只讲一点,就是两者本质上都是数组,但Vector支持线程同步,而ArrayList不支持线程同步。
一、Vector的创建
Vector<Integer> vector = new Vector<>();
Vector<Integer> vector1 = new Vector<>(10);
Vector<Integer> vector2 = new Vector<>(10,10);
Vector<Integer> vector3 = new Vector<>(Arrays.asList(1,2,3,4));
二、常用方法及作用(详细看源码)
Vector<Integer> vector = new Vector<>();
Vector<Integer> vector3 = new Vector<>(Arrays.asList(1,2,3,4));
vector.add(1);
vector.add(1,2);
vector.addAll(Arrays.asList(1,2,3,4));
vector.addElement(5);
vector.get(1);
vector.remove(1);
vector.remove("1");
vector.removeAll(Arrays.asList(1,2,3));
vector.capacity();
vector.size();