泛型 集合1

2021-09-29 06:16:49 字數 1893 閱讀 3584

結構的分類:

list結構的集合類:arraylist,vector,stack,linkedlist類;

vector:

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

public vector() 

public vector(int initialcapacity,int capacityincrement) 

public vector(int initialcapacity)

使用第一種方法系統會自動對向量進行管理,若使用後兩種方法。則系統將根據引數,initialcapacity設定向量物件的容量(即向量物件可儲存資料的大小),當真正存放的資料個數超過容量時。系統會擴充向量物件儲存容量。

引數capacityincrement給定了每次擴充的擴充值。當capacityincrement為0的時候,則每次擴充一倍,利用這個功能可以優化儲存。在vector類中提供了各種方法方便使用者的使用:

public final synchronized void removeelement(object obj) 從向量中刪除obj,若有多個存在,則從向量頭開始試,刪除找到的第乙個與obj相同的向量成員。 

map結構的集合類:hashmap,hashtable(注意t不大寫)類;

set結構的集合類:hashset,treeset類

queue結構的集合類:queue介面

arraylist,vector(英語意思是向量),linkedlist,stack他們的基本方法跟arraylist差不多一樣;

linkedlist比arraylist多addfirst()與addlast()方法,remove,get方法也是一樣;

arraylist與vector的區別:

1,同步性:

vector是同步的,而arraylist是非同步的;

2,資料增長:

從內部實現機制來講arraylist與vector都是使用陣列array來控制集合中的物件。當向這兩種型別增加元素的時候,如果元素的數目超過了內部陣列目前的的長度,他們都需要增加擴充套件內部陣列的長度,vector增加100%,而arraylist是50%;

hashmap與hashtable

注意:hashmap中的key不能一樣,會覆蓋前邊的那個一樣的key的物件,同時hashmap儲存的不是按照順序儲存的。而arraylist可以讓乙個物件add兩次,不會發生覆蓋;

hashmap h=new hashmap();

h.put("s001",new employ("s001","lu",1000));

h.put("s002",new employ("s002","liu",2000));

if(h.containskey("s001"))

//不能是用for進行遍歷,get方法為get(key),無法遍歷

/*for(int i=0;iiterator i=h.keyset().iterator();

//hasnext()返回乙個boolean值

while(i.hasnext())}}

hashmap與hashtable的區別:

1,hashtable是同步的,這個類的一些方法保證了hashtable中的物件是執行緒安全的。而hashmap(不需要執行緒安全的時候選它,這樣可以避免由於帶的不必要的性開銷,從而提       高效率)是非同步的,因此hashmap的物件並不是執行緒安全的。

2,hashtable的key與value不能放null,而hashmap行。

集合總結:

1.如果要求是執行緒安全的:vector,hashtable;

2,如果不要求執行緒安全:arraylist,hashmap,linkedlist;

3.如果要求是用鍵值時使用hashmap和hashtable;

4.如果資料量很大,又要執行緒安全,使用vector;

泛型集合,非泛型集合

arraylist 非泛型集合 list 泛型集合 集合跟陣列比較我們更容易理解。陣列 1,長度固定2,資料型別預先宣告 集合 1,長度可變2,資料型別預先宣告的為泛型集合,資料型別不限定為非泛型 arraylist 長度不固定,元素資料型別為object的集合。object類之間或間接為所有類的父...

C 泛型 泛型集合Dictionary

在system.collections.generic命名空間中,與arraylist相對應的泛型集合是list,與hashtable相對應的泛型集合是dictionary,其儲存資料的方式與雜湊表相似,通過鍵 值來儲存元素,並具有泛型的全部特徵,編譯時檢查型別約束,讀取時無須型別轉換。本儲存的例子...

C 集合 泛型集合

非泛型集合的類和介面位於system.collections命名空間。泛型集合的類和介面位於system.collections.generic命名空間。普通集合 arraylist 值 有序不唯一 hashtable key 必須唯一 可為空 不能為null value 可重複 能為空和null ...