設計模式學習筆記二 物件導向基礎五之集合和泛型

2021-08-30 01:10:40 字數 1519 閱讀 6538

陣列

陣列的優點:陣列在記憶體中連續儲存,可以快速而容易的從頭到尾的遍歷元素,可以快速的修改元素;缺點:建立時必須要指定陣列變數的大小,還有就是兩個元素之間新增元素比較困難。

集合.net framework提供了用於資料儲存和檢索的專用類,這些類統稱集合。這些類提供對堆疊、佇列、列表和雜湊表的支援。大多數集合類實現相同的介面。

arraylist

arraylist是命名空間system.collections下的一部分,他是使用可用大小可按需動態增加的陣列實現ilist介面。

arraylist的容量是arraylist可以儲存的元素數。arraylist的預設初始容量為0,隨著元素新增到arraylist中,容量會根據需要通過重新分配自動增加。使用索引可以訪問此集合中的元素。此集合中的索引從0開始。

動物叫聲比賽arraylist表示如下:

public

class

match

return

result;}}

移除指定索引的集合:

小花和阿毛退賽:

arranimal.removeat(0);

arranimal.removeat(1);

集合的變化是影響全域性的,他始終要保證元素的連續性。所以上面的寫法是錯誤的。正確的寫法應該是:

arraylist不是型別安全的。

裝箱:就是把值型別打包到object引用型別的乙個例項中。

123;

objecto=

(object

)i;//

boxing

拆箱:就是指從物件中提取值型別。

o

=123;i=

(int

)o;//

unboxing

相對於簡單的賦值而言,裝箱和拆箱過程需要進行大量的計算。對值型別進行裝箱時,必須分配並構造乙個全新的物件。其次,拆箱所需的強制轉換也需要進行大量的計算。

泛型泛型是具有佔位符(型別引數)的類、結構、介面和方法,這些佔位符是類、結構、介面和方法所有儲存或使用的乙個或多個型別的佔位符。泛型集合類可以將型別引數用作它所有儲存的物件的型別佔位符;型別引數作為其字段的型別和其方法的引數型別出現。

泛型集合需要system.collections.generic的命名空間。而list類是arraylist類的泛型等效類。該類使用大小可按需動態增加的陣列實現ilist泛型介面。其實用法上關鍵就是在ilist和list後面加'',這't'就是你需要指定的的集合的資料或物件型別。

通常情況下,都建議使用泛型集合。因為這樣可以獲得型別安全的直接優點而不需要從基集合型別派生並實現型別特定的成員。此外,如果幾何元素為值型別,泛型集合型別的效能優於對應的非泛型集合型別(並優於從非泛型集合型別派生的型別),因為使用泛型是不必對元素進行裝箱。

設計模式學習筆記二 物件導向基礎一

1.類與例項 物件是乙個自包含的的實體,用一組可識別的特性和行為來標識。一切事物皆為物件,物件就是可以看到 感覺到 聽到 觸控到 嚐到 或聞到得東西。類就是具有相同的屬性和功能的物件的抽象集合。public class cat cat catmimi new cat 如上 宣告物件名為catmimi...

設計模式學習筆記二 物件導向基礎三之多型

父類 public class animal public animal 虛方法 public virtual string shout 貓子類 cat子類 public class cat animal public cat string name base name public overrid...

設計模式學習筆記二 物件導向基礎三之多型

父類 public class animal public animal 虛方法 public virtual string shout 貓子類 cat子類 public class cat animal public cat string name base name public overrid...