陣列 鍊錶 字典 雜湊表學習

2021-08-07 09:26:50 字數 2897 閱讀 7913

學習這三者時有些困惑,覺得使用起來都可以達到目的,但是在開發中逐漸發現,在不同的情況下使用,對於執行速率是大有不同的,這也再一次告誡了自己,學習需要深刻理解,才能夠掌握好知識點。

特將三者基礎概念和異同點總結如下,望各位同道開發者不吝賜教,共同學習。

陣列——物件數量較少且數量固定時優先考慮;

字典——需要進行頻繁的搜尋時優先考慮;

鍊錶——物件數量是動態的且搜尋不是優先選項時,需要經常增減節點的情況優先考慮;

①基礎知識點:

1、下標從0開始;

int, 元素的值預設都是0;

float, 元素的值預設都是0;

double,元素的值預設都是0.0;

string, 元素的值預設都是null;

bool, 元素的值預設都是false;

2、下標不可以越界;

3、陣列名表示陣列,不可以進行運算;

4、當需要對陣列中的值進行操作時,使用for迴圈更好;單純遍歷,使用foreach更好。

②優點:

1、陣列儲存在連續的記憶體上,索引速度非常快;

2、訪問乙個元素的時間恆定,與陣列的元素數量無關;

3、賦值或修改元素簡單。

③缺點:

1、連續儲存,在兩個元素之間插入新的元素麻煩;

2、容易造成記憶體浪費(宣告的長度過長)或溢位(宣告的長度過短)的問題。

一維陣列:

using system;  

namespace lesson01 ;

//動態賦值——使用new關鍵字

float numbers= new float [5];

console.writeline(numbers [0]);

//靜態賦值——不使用new關鍵字

string s = ;

console.writeline(s [1]);

console.writeline (s [0] + s [1] + s [2] + s [3]); //可以對陣列中的元素進行運算,但是陣列名表示陣列,不可以進行運算;

//使用迴圈遍歷陣列中的元素

//for (int i = 0; i < max; i++) {} //快捷操作——for+按tab兩次

//使用foreach遍歷輸出 foreach(陣列資料型別 臨時變數名 in 陣列名)

foreach (string ss in s)

//已知陣列長度,可以直接決定max範圍,從上知max為4

for (int i = 0; i < 4; i++)

//使用"陣列名.length"獲取陣列長度

for (int i = 0; i < s.length; i++)

}

} }

二維陣列:

using system;

namespace lesson01 ,{}};

int[,] intarray1= new int [2,3],

};console.writeline(intarray1 [1,2]);

//使用迴圈遍歷陣列中的元素

for (int i = 0; i < 2; i++)

}//使用foreach遍歷輸出 foreach(陣列資料型別 臨時變數名 in 陣列名)

foreach (int ss in intarray1 )

} }}

其他補充知識點:

using system;  

namespace lesson01 ;

int num2 = new int[5];

將元素從乙個陣列copy到另乙個陣列,後面數字表示到指定位置結束.

array.copy(num1,num2,4);

foreach(int i in num2)

//reverse——方向輸出陣列

array.reverse(num1);

foreach (int n in num1)

} }}

①基礎知識點:

1、dictionary是儲存鍵和值的集合;

2、dictionary是無序的,鍵key是唯一的;

3、通過key找到對應的value,遊戲中通常通過使用id,id關聯使用者的所有資訊,從而找到玩家的其他遊戲資訊。

②優點:

查詢速度快,能根據鍵快速查詢值。

③缺點:

記憶體開銷大。

using system.collections.generic;//引用泛型集合空間命名    

namespace lesson01

}}

①基礎知識點:

②優點:

1、鍊錶在記憶體儲存的排序上不連續,而是靠各物件的指標所決定,新增元素和刪除元素比陣列優勢;

2、鍊錶適合在需要有序的排序的情境下增加新的元素,增加新的元素只是若干元素的指向發生變化。

③缺點:

其在記憶體空間中不一定連續排列,訪問時無法利用下標,必須從頭結點開始,逐次遍歷下乙個節點直到尋找到目標,不適用於需要快速訪問物件的情況。

①基礎知識點:

②優點:

1、資料儲存和查詢時間短;

2、新增資料效率高。

③缺點:

以空間換時間,需要消耗更多的記憶體。

using system;

using system.collections; //使用hashtable時,必須引入命名空間

class program

}

陣列,雜湊表,字典

陣列 陣列的分類 一維陣列,多維陣列,不規則陣列 陣列的應用 建立,賦值,引用 一維陣列 二維陣列 多維陣列的應用就是,儲存型別相同的資料 陣列的特點就是,型別相同,長度固定 一維陣列的格式 建立格式 int arr new int 100 陣列型別 陣列名稱 建立乙個新物件 陣列的長度 也可以是 ...

雜湊表 字典

衝突效能 你在一家雜貨店上班。有顧客來買東西時,你得在乙個本子中查詢 n o n o n 如果本子的內容是按字母順序排列的,可使用二分查詢來找出蘋果的 這需要的時間更短,為o l ogn o log n o logn 前面介紹了兩種用於查詢的資料結構 陣列和鍊錶,為了針對上面的問題,有個更快的查詢方...

雜湊表 字典

1.能夠超快速的檢索效能 2.優化演算法 在不同語言中,雜湊表的叫法不一樣 以 鍵 值對 儲存資料的結構 我們使用雜湊表來儲存鍵值對,假如我們要儲存乙個員工列表,並能夠根據員工編號快速查詢員工,每乙個員工都有唯一的員工編號,我們可以使用這個員工編號作為鍵,使用員工編號的值作為值 現在要在雜湊表中儲存...