1、屬性
//儲存元素的陣列
protected
object elementdata;
//儲存元素的個數
protected
intelementcount;
//擴容時的增加量,大於0是增加capacityincrement,否則增加兩倍(預設兩倍)
protected
intcapacityincrement;
//陣列的最大容量
private
static
final
int max_array_size = integer.max_value - 8;
2、構造方法
//無參構造方法
public
vector()
public vector(intinitialcapacity)
public vector(int initialcapacity, intcapacityincrement)
//不常用public vector(collection<? extends e>c)
注意:下面的增刪查改都只說明乙個,其他的和arraylist的操作差不多(只有擴容方式和arraylist有區別)
3、新增
publicsynchronized
boolean
add(e e)
privatevoid ensurecapacityhelper(int
mincapacity)
//擴容方法
private
void grow(int
mincapacity)
privatestatic
int hugecapacity(int
mincapacity)
4、刪除
publicboolean
remove(object o)
publicsynchronized
boolean
removeelement(object obj)
return
false
; }
publicintindexof(object o)
publicsynchronized
int indexof(object o, int
index)
else
return -1;
}
publicsynchronized
void removeelementat(int
index)
else
if (index < 0)
int j = elementcount - index - 1;
if (j > 0)
elementcount--;
elementdata[elementcount] = null; /*
to let gc do its work
*/}
//刪除陣列中下標為index的元素
public
synchronized e remove(int
index)
5、查詢
publicsynchronized e get(int
index)
e elementdata(intindex)
6、修改
publicsynchronized e set(int
index, e element)
《stlport》原始碼解析 vector
1 開啟stlport 的原始碼了嗎,我這裡使用4.6.2版本,其他版本也無妨啊。2 進入stlport stl目錄,有木有很多 list.h,vector.h的檔案,恭喜你找對了。3 開啟 vector.h看看吧,建議用ue或者其他ide環境,這樣方便看哦。4 template class vec...
JDk原始碼解析之四 Vector原始碼解析
具體的三個屬性 解釋看圖中注釋。vector沒有採取arraylist臨界值擴容的辦法,而是每次不夠的時候,直接根據capacity的值來增加。具體怎麼增加後面會說。vector的構造方法如下。簡單粗暴,如果呼叫無參建構函式,直接就將初始容量設定成了10,最終在右側的構造方法裡,將陣列的長度設定為1...
Vector原始碼解析 jdk1 8
概述 vector實現了list的介面,底層同樣是基於陣列實現的,可以儲存null。功能結構與arraylist的類似,不同的是執行緒安全的。建構函式protected object elementdata protected int capacityincrement public vector ...