當前位置:成語大全網 - 書法字典 - 字典還是數組?

字典還是數組?

C#集合類ArrayArrayListHashtable字典StackQueue

1.數組的大小是固定的,無法縮放。雖然通用方法系統。Array.Resize可以重置數組大小,

但是,此方法用新設置的大小重新創建數組,並用舊數組的元素對其進行初始化。那麽之前的數組將被放棄!而該組的長度是可變的。

2.數組希望聲明元素的類型,但集合類的元素類型是object。

3.數組可以讀寫,只讀數組不能聲明。集合類可以提供只讀方法以只讀方式使用集合。

4.數組必須有整數下標才能訪問特定的元素,但很多時候這樣的下標並不太有用。集合也是數據列表,但不使用下標訪問。

很多時候,集合都有自定義的下標類型,而對於隊列和棧來說根本不支持下標訪問!

//數組

int【】int array 1;

//初始化聲明的壹維數組。

int array 1 = new int【3】;

int array 1 = new int【3】{ 1,2,3 };

int array 1 = new int【】{ 1,2,3 };

//ArrayList類對象設計為動態數組類型,其容量將根據需要適當擴展。

方法

1: add()將元素添加到數組中。

2: remove()刪除數組中的元素。

3:remove at(int I)刪除數組中索引值為I的元素。

4: reverse()反轉數組的元素。

5: sort()將數組的元素從小到大排列。

6: clone()復制數組。

//列表

可通過索引訪問的對象的強類型列表。提供搜索、排序和操作列表的方法。

當決定是使用List還是ArrayList類(兩者具有相似的功能)時,請記住List類在大多數情況下性能更好,並且是類型安全的。如果對List類的類型t使用引用類型,那麽

這兩個類的行為完全相同。但是,如果對類型T使用值類型,則需要考慮實現和打包問題。

如果值類型用於類型t,編譯器將專門為此值類型生成List類的實現。這意味著list對象的List元素可以在不裝箱的情況下使用,並且正在創建大約500個列表。

元素時,不裝箱列表元素節省的內存將大於用於生成此類實現的內存。

//字典

表示鍵和值的集合。Dictionary遍歷輸出的順序就是它被添加的順序,這與Hashtable不同。

//SortedList類

與哈希表類似,不同之處在於SortedList中的鍵數組是有序的。

//哈希表類

哈希表,名稱-值對。類似於字典(比數組更強大)。哈希表被優化,訪問下標的對象首先被哈希。如果您使用任何類型的鍵值訪問其元素,它將比其他集合更快。

GetHashCode()方法返回壹個int類型數據,這個鍵的值用於生成int類型數據。哈希表獲取該值並最終返回壹個索引,指示具有給定哈希的數據項在字典中的存儲位置。

//堆棧類

堆棧,後進先出。Push方法進入堆棧,pop方法退出堆棧。

隊列類別

排隊,先進先出。Enqueue方法進入隊列,dequeue方法退出隊列。

-

//字典

系統。collections . dictionary entry DIC =新系統。collections . dictionary entry(“key 1“,“value 1“);

詞典& ltint,string & gt水果=新詞典& ltint,string & gt();

//添加重復鍵將引發異常。

水果。add(1,“蘋果”);

水果。添加(2,“橙色”);

水果。加(3,“香蕉”);

水果。添加(4,“菠蘿”);

//因為引入了泛型,所以不需要將鍵從Object轉換為int,值的集合也是如此。

水果中的foreach(int I。鑰匙)

{

控制臺。WriteLine(“鍵為:{0}值為:{1}“,I,fruit);

}

//刪除指定的鍵、值

水果。刪除(1);

//確定是否包含指定的鍵。

如果(果。contains key(1))

{

控制臺。WriteLine(“包含此鍵“);

}

//清除集合中的所有對象

水果。clear();

}

//數組列表

系統。集合。數組列表=新系統。collections . ArrayList();

列表。加(1);

列表。添加(2);

for(int I = 0;我& lt列表。數數;i++)

{

系統。console . WriteLine(list【I】);

}

//列表

//聲明壹個列表對象,僅添加字符串參數。

列表& lt字符串& gtnames =新列表& lt字符串& gt();

名字。添加(“喬峰”);

名字。加(“歐陽鋒”);

名字。add(“wasp“);

//遍歷列表

foreach(名稱中的字符串名稱)

{

控制臺。WriteLine(名稱);

}

//在列表中插入元素

名字。插入(二、“張三豐”);

//移除指定的元素。

名字。清除(“黃蜂”);

//哈希表

系統。Collections . Hashtable table =新系統。collections . Hashtable();

桌子。add(“table 1“,1);

桌子。Add(“表2“,2);

系統。collections . IDictionaryEnumerator d = table。get enumerator();

while(d . MoveNext())

{

系統。console . WriteLine(d . entry . key);

}

//隊列

系統。Collections.Queue隊列=新系統。collections . Queue();

排隊。入隊(1);

排隊。入隊(2);

系統。控制臺。WriteLine(隊列。peek());

while(排隊。計數& gt0)

{

系統。控制臺。WriteLine(隊列。出列());

}

//SortedList

系統。Collections . SortedList list =新系統。collections . sorted list();

列表。add(“key 2“,2);

列表。add(“key 1“,1);

for(int I = 0;我& lt列表。數數;i++)

{

系統。console . WriteLine(list。GetKey(I);

}

//堆棧

系統。Collections . Stack stack =新系統。collections . Stack();

堆棧。推送(1);

堆棧。推送(2);

系統。控制臺。WriteLine(堆棧。peek());

while(堆棧。計數& gt0)

{

系統。控制臺。WriteLine(堆棧。pop());

}