1. 程式人生 > >Java集合中vector的使用詳解

Java集合中vector的使用詳解

Vector 可實現自動增長的物件陣列。 java.util.vector提供了向量類(vector)以實現類似動態陣列的功能。在Java語言中沒有指標的概念,但如果正確靈活地使用指標又確實可以大大提高程式的質量。比如在c,c++中所謂的“動態陣列”一般都由指標來實現。為了彌補這個缺點,Java提供了豐富的類庫來方便程式設計者使用,vector類便是其中之一。事實上,靈活使用陣列也可以完成向量類的功能,但向量類中提供大量的方法大大方便了使用者的使用。 建立了一個向量類的物件後,可以往其中隨意插入不同類的物件,即不需顧及型別也不需預先選定向量的容量,並可以方便地進行查詢。對於預先不知或者不願預先定義陣列大小,並且需要頻繁地進行查詢,插入,刪除工作的情況。可以考慮使用向量類。

向量類提供了三種構造方法:

public vector() 
public vector(int initialcapacity,int capacityIncrement) 
public vector(int initialcapacity)
  • 使用第一種方法系統會自動對向量進行管理,若使用後兩種方法。則系統將根據引數,initialcapacity設定向量物件的容量(即向量物件可儲存資料的大小),當真正存放的資料個數超過容量時。系統會擴充向量物件儲存容量。 引數capacityincrement給定了每次擴充的擴充值。當capacityincrement為0的時候,則沒次擴充一倍,利用這個功能可以優化儲存。在Vector類中提供了各種方法方便使用者的使用:

插入功能:

  • (1)public final synchronized void adddElement(Object obj) 將obj插入向量的尾部。obj可以是任何型別的物件。對同一個向量物件,亦可以在其中插入不同類的物件。但插入的應是物件而不是數值,所以插入數值時要注意將陣列轉換成相應的物件。 例如:要插入整數1時,不要直接呼叫v1.addElement(1),正確的方法為: Vector v1 = new Vector(); Integer integer1 = new Integer(1); v1.addElement(integer1);

    (2)public final synchronized void setElementAt(Object obj,int index) 將index處的物件設定成obj,原來的物件將被覆蓋。

    (3)public final synchronized void insertElementAt(Object obj,int index) 在index指定的位置插入obj,原來物件以及此後的物件依次往後順延。

刪除功能:

  • (1)public final synchronized void removeElement(Object obj) 從向量中刪除obj,若有多個存在,則從向量頭開始試,刪除找到的第一個與obj相同的向量成員。 (2)public final synchronized void removeAllElement(); 刪除向量所有的物件 (3)public fianl synchronized void removeElementAt(int index) 刪除index所指的地方的物件

查詢搜尋功能:

  • (1)public final int indexOf(Object obj) 從向量頭開始搜尋obj,返回所遇到的第一個obj對應的下標,若不存在此obj,返回-1.

    (2)public final synchronized int indexOf(Object obj,int index) 從index所表示的下標處開始搜尋obj.

    (3)public final int lastindexOf(Object obj) 從向量尾部開始逆向搜尋obj.

    (4)public final synchornized int lastIndex(Object obj,int index) 從index所表示的下標處由尾至頭逆向搜尋obj.

    (5)public final synchornized firstElement() 獲取向量物件中的首個obj

    (6)public final synchornized Object lastElement() 獲取向量物件的最後一個obj