从源代码看ArrayList和Vector的真正区别
2008-09-15 10:44
357 查看
原文地址:http://www.java2000.net/p9750
今天正好看到了这个东西,一直都是看别人的资料,决定自己亲自看看源代码。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();
今天正好看到了这个东西,一直都是看别人的资料,决定自己亲自看看源代码。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();
相关文章推荐
- ArrayList/Vector/LinkedList 区别与用法
- Java中的Vector与ArrayList的区别
- ArrayList Vector LinkedList区别与用法
- ArrayList,Vector,LiskedList的区别
- ArrayList和Vector的区别
- 从源码分析ArrayList和Vector区别
- vector 和 list arrayList 的区别
- Java中Vector和ArrayList的区别
- (9) java ---- 集合框架图 ArrayList,LinkedList,Vector各自的性能特点及区别
- Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- java基础(六)ArrayList、LinkedList、Vector的区别
- ARRAYLIST VECTOR LINKEDLIST 区别与用法
- ArrayList Vector LinkedList 区别与用法
- 集合:HashMap与HashTable、TreeMap,ArrayList和Vector的区别
- Array / ArrayList / Vector / LinkedList / Hashmap区别
- ARRAYLIST VECTOR LINKEDLIST 区别与用法
- Vector和ArrayList区别
- java vector 和ArrayList的区别
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap分别的区别.
- 在Java中Vector和ArrayList的区别