1. 程式人生 > >黑馬程式設計師-集合和泛型集合-學習筆記

黑馬程式設計師-集合和泛型集合-學習筆記

垃圾回收:
1、CLR的一個核心功能
2、垃圾回收器,的目的:提交記憶體利用率
3、只回收託管堆中的記憶體資源,不回收其他資源(資料庫連線,檔案控制代碼,網路埠等)
4、GC.Collect();//手動垃圾回收(不建議使用)


集合介紹:
延伸(陣列特點:型別統一,長度固定)
集合常用操作:新增,遍歷,移除(增、刪、查、改,遍歷)
名稱空間System.Collections
1、ArrayList:  可變長度陣列,使用類似陣列
屬性Capacity(集合中可以容納元素的個數,翻倍增長)
屬性Count(集合中世紀存放的元素個數)
方法:  Add();//新增元素
AddRange();//新增陣列到集合
Remove();//根據物件刪除元素
RemoveAt();//根據索引刪除元素
Clear();//清空集合
Contains();//判斷是否包含某個元素
ToArray();//把集合轉換成陣列
Sort();//排序
Reverse();//反轉
2、Hashtable:鍵值對的對河,類似字典,Hashtable在查詢元素的時候,速度很快。
方法:  Add(object key,object value);//新增元素
hash["key"];//查詢元素
hash["key"]="修改"//修改元素
Contains;//等價於ContainsValue,內部也是呼叫的ContainsValue。
ContainsValue;//值是否存在
ContainsKey("key");//key是否存在
Remove("key");根據key刪除元素
遍歷:  hash Keys//遍歷key
hash Values//遍歷values
DictionaryEntry//同時遍歷key和values


注意:以上兩種集合很少使用,後期用
list<T>(泛型)代替ArrayList(非泛型)
Dictionary<K,V>(泛型)代替Hashtable(非泛型)


擴充套件:
隨機數:Random r = new Random();
r.next(1,101);//隨機生成1-100之間的數
注意事項:如果種子相同,產生的隨機數是相同的,種子根據時間來決定。


泛型集合:(dotnet 2.0以上才有)
名稱空間:System.Collcetions.Generic
List:
舉例:List<T> list = new List<T>();
解釋:T是Type是簡寫,該處填寫某一資料型別。


1、通過泛型可以限定集合中儲存資料的型別。
2、ToArray();//返回值型別自動對應設定的型別。


Dictionary:
舉例:Dictionary<TKey,TValues> dict = new Dictionary<TKey,TValues>();
解釋:TKey和TValue是簡寫,該處填寫某一資料型別
1、遍歷key
foreach(TKey item in dict.Keys)
{
Console.WriteLine(item);
}
2、遍歷value
foreach(TValue item in dict.Values)
{
Console.WriteLine(item);
}
3、同時遍歷key和value
foreach(KeyValuePair<Tkey,TValue> kv in dict)
{
Console.WriteLine(kv.Key);
Console.WriteLine(kv.Value);
}


var關鍵字介紹:
var是一個“型別推斷”,在程式編譯的時候就已經替換成對應的資料型別,所以說var是一個強型別(在編譯的時候已經可以確定資料型別了),而不是弱型別。
擴充套件:javascript中的var是弱型別。