从源代码看ArrayList和Vector的真正区别2010-12-19赵学庆今天正好看到了这个东西,一直都是看别人的资料,决定自己亲自看看源代 码。JDK版本为 6.0_04 的1 声明没有任何区别public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable; public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable;2 构造器方法,默认都是10个初始化容量。Vector带每次增加容量的参数public ArrayList(int initialCapacity); public Vector(int initialCapacity); public Vector(int initialCapacity, int capacityIncrement);3 add等方法,Vector是同步的方法ArrayList public boolean add(E e); Vector public synchronized boolean add(E e);4 尺寸和长度,私有变量不同。ArrayList.size; Vector.elementCount;5 其它方法Vector 比ArrayList方法多,不过一部分是重复的public synchronized void copyInto(Object[] anArray); public synchronized void setSize(int newSize); public synchronized int capacity(); public Enumeration<E> elements(); public synchronized E elementAt(int index); public synchronized E firstElement(); public synchronized E lastElement(); public synchronized void setElementAt(E obj, int index) ; public synchronized void removeElementAt(int index); public synchronized void insertElementAt(E obj, int index); public synchronized void addElement(E obj); public synchronized boolean removeElement(Object obj); public synchronized void removeAllElements();原文地址:http://www.java2000.net/p9750