學習這三者時有些困惑,覺得使用起來都可以達到目的,但是在開發中逐漸發現,在不同的情況下使用,對於執行速率是大有不同的,這也再一次告誡了自己,學習需要深刻理解,才能夠掌握好知識點。
特將三者基礎概念和異同點總結如下,望各位同道開發者不吝賜教,共同學習。
陣列——物件數量較少且數量固定時優先考慮;
字典——需要進行頻繁的搜尋時優先考慮;
鍊錶——物件數量是動態的且搜尋不是優先選項時,需要經常增減節點的情況優先考慮;
①基礎知識點:
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.優化演算法 在不同語言中,雜湊表的叫法不一樣 以 鍵 值對 儲存資料的結構 我們使用雜湊表來儲存鍵值對,假如我們要儲存乙個員工列表,並能夠根據員工編號快速查詢員工,每乙個員工都有唯一的員工編號,我們可以使用這個員工編號作為鍵,使用員工編號的值作為值 現在要在雜湊表中儲存...