http://freestyle21.cn
java.lang.Object | +----java.util.Vector
public class Vector
- extends Object
- implements Cloneable, Serializable
- 下列類的父類:
- Stack
Vector
類實現了可動態擴充的對象數組。類似數組,它包含的元素可通過數組下標來訪問。但是,在 Vector
創建之後。Vector
可根據增加和刪除元素的需要來擴大或縮小。
每個向量可通過維護 capacity
和 capacityIncrement
來優化存儲空間的管理。capacity
至少和向量大小一樣大;但它通常會更大些,因爲向量會添加組件,向量的存儲空間會根據 capacityIncrement
增加。應用在插入大數量的組件之前會增加向量的容量;這減少了再分配的數量。
變量索引
- capacityIncrement
- 當向量的大小超過它的容量時的向量容量的自動增加量。
- elementCount
- 向量中的有效元素數。
- elementData
- 存儲向量中元素的數組緩衝區。
構造子索引
方法索引
- addElement(Object)
- 在向量尾部添加一個指定組件,並把它的長度加一。
- capacity()
- 返回當前向量的容量。
- clone()
- 返回該向量的一個 clone 。
- contains(Object)
- 測試指定對象是否該向量的一個元素。
- copyInto(Object[])
- 把該向量的元素複製到指定數組中。
- elementAt(int)
- 返回指定下標處的組件。
- elements()
- 返回該向量的元素的一個枚舉。
- ensureCapacity(int)
- 增加向量容量,必要的話,保證它至少能容納由最小容量參數指定的組件數。
- firstElement()
- 返回該向量的第一個元素。
- indexOf(Object)
- 查找給定參數在向量中第一次出現的位置,並用
equals
方法測試它們是否相等。 - indexOf(Object, int)
- 從
index
處開始查找給定參數在向量中第一次出現的位置,並用equals
方法測試它們是否相等。 - insertElementAt(Object, int)
- 在指定的
index
處插入作爲該向量元素的指定對象。 - isEmpty()
- 測試該向量是否無元素。
- lastElement()
- 返回向量的最後一個元素。
- lastIndexOf(Object)
- 返回向量中最後出現的指定對象的下標。
- lastIndexOf(Object, int)
- 從指定的下標向後查找指定的對象,並返回它的下標。
- removeAllElements()
- 刪除向量的所有元素並把它的大小置爲零。
- removeElement(Object)
- 從向量中刪除第一個出現的參數。
- removeElementAt(int)
- 刪除指定下標處的元素。
- setElementAt(Object, int)
- 設置在向量中指定的
index
處的元素爲指定的對象。 - setSize(int)
- 設置向量的大小。
- size()
- 返回該向量的元素數。
- toString()
- 返回該向量的字符串表示。
- trimToSize()
- 把該向量的容量調整爲向量的當前大小。
變量
elementDataprotected Object elementData[]
- 存儲向量中的元素的數組緩衝區。向量的容量就是該數組緩衝區的長度。
protected int elementCount
- 向量中的有效元素數。
protected int capacityIncrement
- 當向量大小超過它的容量時的向量容量的自動增加量。如果容量增量爲
0
, 向量的容量在每次需要增加時會擴充一倍。
構造子
Vectorpublic Vector(int initialCapacity, int capacityIncrement)
- 用指定的初始化容量和容量增量構造一個空向量。
- 參數:
- initialCapacity - 向量的初始容量。
- capacityIncrement - 當向量溢出時容量的增長量。
public Vector(int initialCapacity)
- 用指定的初始化容量構造一個空向量。
- 參數:
- initialCapacity - 向量的初始容量。
public Vector()
- 構造一個空向量。
方法
copyIntopublic final synchronized void copyInto(Object anArray[])
- 把該向量的元素複製到指定數組中。 數組必須足夠大到可容納向量中的所有對象。
- 參數:
- anArray - 放複製元素的數組。
public final synchronized void trimToSize()
- 把該向量的容量調整爲向量的當前大小。應用可使用該操作最小化向量存儲空間。
public final synchronized void ensureCapacity(int minCapacity)
- 增加向量容量,必要的話,保證它至少能容納由最小容量參數指定的組件數。
- 參數:
- minCapacity - 要求的最小容量。
public final synchronized void setSize(int newSize)
- 設置向量的大小。 如果新大小大於當前大小,則新的
null
項添加到向量尾部。如果新的大小小於當前大小,所有下標大於或等於newSize
的元素將被拋棄。 - 參數:
- newSize - 向量的新大小。
public final int capacity()
- 返回該向量的當前容量。
- 返回值:
- 該向量的當前容量。
public final int size()
- 返回該向量的元素數。
- 返回值:
- 該向量的元素數。
public final boolean isEmpty()
- 測試該向量是否無元素。
- 返回值:
- 如果該向量無元素,返回
true
;反之返回false
。
public final synchronized Enumeration elements()
- 返回該向量的元素的一個枚舉。
- 返回值:
- 該向量的元素的一個枚舉。
- 參見:
- Enumeration
public final boolean contains(Object elem)
- 測試指定對象是該向量的一個元素。
- 參數:
- elem - 一個對象。
- 返回值:
- 如果指定對象是該向量中的一個元素,則返回
true
;否則返回false
。
public final int indexOf(Object elem)
- 查找給定參數在向量中第一次出現的位置,並用
equals
方法測試它們是否相等。 - 參數:
- elem - 一個對象。
- 返回值:
- 參數在向量中第一次出現處的下標;如果該對象未找到,則返回
-1
。 - 參見:
- equals
public final synchronized int indexOf(Object elem, int index)
- 從
index
處開始查找給定參數在向量中第一次出現的位置,並用equals
方法測試它們是否相等。 - 參數:
- elem - 一個對象。
- index - 開始查找的位置的下標。
- 返回值:
- 參數在向量中的
index
處或在它之後第一次出現的位置的下標;如果該對象未找到,則返回-1
。 - 參見:
- equals
public final int lastIndexOf(Object elem)
- 返回向量中最後出現的指定對象的下標。
- 參數:
- elem - 指定的元素。
- 返回值:
- 指定對象在向量中最後一次出現處的下標;如果該對象未找到,則返回
-1
。
public final synchronized int lastIndexOf(Object elem, int index)
- 從指定的下標向後查找指定的對象,並返回它的下標。
- 參數:
- elem - 指定的元素。
- index - 開始查找的位置的下標。
- 返回值:
- 指定對象在向量中的
index
處或在它之後第一次出現的位置的下標;如果該對象未找到,則返回-1
。
public final synchronized Object elementAt(int index)
- 返回指定下標處的組件。
- 參數:
- index - 向量中的一個下標。
- 返回值:
- 指定下標處的元素。
- 拋出: ArrayIndexOutOfBoundsException
- 如果給出無效的下標。
public final synchronized Object firstElement()
- 返回該向量的第一個元素。
- 返回值:
- 該向量的第一個元素。
- 拋出: NoSuchElementException
- 如果該向量沒有元素。
public final synchronized Object lastElement()
- 返回向量的最後一個元素。
- 返回值:
- 向量的最後一個元素,即在下標
size() - 1
處的元素。 - 拋出: NoSuchElementException
- 如果該向量爲空。
public final synchronized void setElementAt(Object obj, int index)
- 設置在向量中指定的
index
處的元素爲指定的對象。 在該位置的先前元素被拋棄。下標值必須大於或等於
0
,並且小於向量的當前大小。 - 參數:
- obj - 元素被設置成的那個對象。
- index - 指定下標。
- 拋出: ArrayIndexOutOfBoundsException
- 如果下標無效。
- 參見:
- size
public final synchronized void removeElementAt(int index)
- 刪除指定下標處的元素。 在該向量中下標大於或等於
index
的元素的下標值減一。下標值必須大於或等於
0
,並且小於向量的當前大小。 - 參數:
- index - 要刪除對象的下標。
- 拋出: ArrayIndexOutOfBoundsException
- 如果下標無效。
- 參見:
- size
public final synchronized void insertElementAt(Object obj, int index)
- 在指定的
index
處插入作爲該向量元素的指定對象。 在該向量中下標大於或等於index
的元素的下標值加一。下標值必須大於或等於
0
,並且小於或等於向量的當前大小。 - 參數:
- obj - 要插入的元素
- index - 插入新元素的位置。
- 拋出: ArrayIndexOutOfBoundsException
- 如果下標無效。
- 參見:
- size
public final synchronized void addElement(Object obj)
- 在向量尾部添加一個指定組件,並把它的長度加一。 當向量大小超過它的容量時向量的容量自動增加。
- 參數:
- obj - 要添加的元素。
public final synchronized boolean removeElement(Object obj)
- 從向量中刪除第一個出現的參數。 如果在向量中找到該對象,在該向量中下標大於或等於
index
的每個元素的下標值減一。 - 參數:
- obj - 要刪除的元素。
- 返回值:
- 如果參數是向量的一個元素,返回
true
;否則返回false
。
public final synchronized void removeAllElements()
- 刪除向量的所有元素並把它的大小置爲零。
public synchronized Object clone()toString
public final synchronized String toString()
- 返回該向量的字符串表示。
-
Vector 有三個構造函數:
public Vector(int initialCapacity,int capacityIncrement)
public Vector(int initialCapacity)
public Vector()
Vector 運行時創建一個初始的存儲容量initialCapacity,存儲容量是以capacityIncrement 變量定義的增量增長。初始的存儲容量和capacityIncrement 可以在Vector 的構造函數中定義。第二個構造函數只創建初始存儲容量。第三個構造函數既不指定初始的存儲容量也不指定capacityIncrement。
Vector 類提供的訪問方法支持類似數組運算和與Vector 大小相關的運算。類似數組的運算允許向量中增加,刪除和插入元素。它們也允許測試矢量的內容和檢索指定的元素,與大小相關的運算允許判定字節大小和矢量中元素的數目。
現針對經常用到的對向量增,刪,插功能舉例描述:
addElement(Object obj)
把組件加到向量尾部,同時大小加1,向量容量比以前大1
insertElementAt(Object obj, int index)
把組件加到所定索引處,此後的內容向後移動1 個單位
setElementAt(Object obj, int index)
把組件加到所定索引處,此處的內容被代替。
removeElement(Object obj) 把向量中含有本組件內容移走。
removeAllElements() 把向量中所有組件移走,向量大小爲0。
例如:
import java.lang.System;
import java.util.Vector;
import java.util.Emumeration;
public class Avector{
public static void main(String args[]){
Vector v=new Vector();
v.addElement("one");
v.addElement("two");
v.addElement("three");
v.insertElementAt("zero",0);
v.insertElementAt("oop",3);
v.setElementAt("three",3);
v.setElementAt("four",4);
v.removeAllElements();
}
} -
-
Vector中的變化情況:
1. one 2. one 3. one 4. zero 5. zero 6. zero 7. zero
two two one one one one
three two two two two
three oop three three
three three four