程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 從源代碼看ArrayList和Vector的真正區別

從源代碼看ArrayList和Vector的真正區別

編輯:關於JAVA

今天正好看到了這個東西,一直都是看別人的資料,決定自己親自看看源代 碼。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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved