欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中的數(shù)據(jù)結(jié)構(gòu)介紹

 更新時(shí)間:2022年03月22日 09:13:39   作者:.NET開(kāi)發(fā)菜鳥(niǎo)  
這篇文章介紹了C#中的數(shù)據(jù)結(jié)構(gòu),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、數(shù)組(Array)

數(shù)組具有以下的特點(diǎn):

  • 數(shù)組屬于線性結(jié)構(gòu),在內(nèi)存中是連續(xù)存放的。
  • 數(shù)組的元素類型必須相同。
  • 數(shù)組可以直接通過(guò)下標(biāo)訪問(wèn)。
  • 數(shù)組的查找速度非???,新增和刪除速度慢。
  • 數(shù)組在初始化時(shí)要指定數(shù)組長(zhǎng)度。

二、動(dòng)態(tài)數(shù)組(ArrayList)

動(dòng)態(tài)數(shù)組具有以下的特點(diǎn):

  • ArrayList的底層其實(shí)就是一個(gè)數(shù)組。
  • ArrayList在聲明時(shí)不必指定長(zhǎng)度,會(huì)根據(jù)存儲(chǔ)的數(shù)據(jù)動(dòng)態(tài)的增加或減少長(zhǎng)度。
  • ArrayList會(huì)把所有的元素都當(dāng)做Object處理,因此可以存儲(chǔ)不同數(shù)據(jù)類型的元素。
  • 插入和刪除一個(gè)元素時(shí),會(huì)移動(dòng)它之后所有元素的位置,效率低,頻繁進(jìn)行插入或者刪除元素推薦使用LinkedList。
  • ArrayList是非類型安全的,在插入和刪除元素時(shí)會(huì)進(jìn)行拆箱和裝箱問(wèn)題,影響性能,效率低。

三、泛型List

泛型List具有以下的特點(diǎn):

  • List是ArrayList的泛型類。
  • 泛型List需要在聲明時(shí)指定具體的類型。
  • 泛型List沒(méi)有裝箱和拆箱操作,因此List比ArrayList效率高而且類型安全。

四、雙向鏈表(LinkedList)

雙向鏈表具有如下特點(diǎn):

  • 鏈表的節(jié)點(diǎn)在內(nèi)存中的空間是不連續(xù)的,每塊空間稱作一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都存有一個(gè)前驅(qū)和后置指針,分別指向前一個(gè)節(jié)點(diǎn)和后一個(gè)節(jié)點(diǎn),因此向鏈表中添加和刪除元素的效果高,只需要更改相應(yīng)節(jié)點(diǎn)的指針指向即可。
  • 鏈表的查找效率低。查找元素時(shí)不能通過(guò)下標(biāo)進(jìn)行訪問(wèn),只能從頭開(kāi)始通過(guò)地址按順序查找。

五、堆棧(Stack)

堆棧具有如下特點(diǎn):

  • 堆棧是先進(jìn)后出的原則,最先插入的元素最后被訪問(wèn),最后插入的元素最先被訪問(wèn)。
  • Push入棧,Pop出棧并返回棧頂元素,Peek只返回棧頂元素。

六、Queue(鏈表)

鏈表具有以下特點(diǎn):

  • 鏈表是先進(jìn)先出的原則,最先進(jìn)入的元素最先被訪問(wèn),最后進(jìn)入的元素最后被訪問(wèn)。
  • Enqueue入隊(duì)列,Dequeue出隊(duì)列并返回列首元素,Peek只返回列首元素。 

七、字典(Dictionary)

字典具有以下特點(diǎn):

  • 創(chuàng)建字典時(shí)需要指定key和value的數(shù)據(jù)類型。
  • 字典中的key值是唯一的,value的值可以不唯一。
  • 可以通過(guò)key快速查找對(duì)應(yīng)的value,速度快,但是消耗內(nèi)存。

幾種常見(jiàn)數(shù)據(jù)結(jié)構(gòu)的使用情景

Array需要處理的元素?cái)?shù)量確定并且需要使用下標(biāo)進(jìn)行訪問(wèn)時(shí)可以考慮,不過(guò)建議使用List<T>。
ArrayList不推薦使用,建議使用泛型List<T>。
泛型List<T>需要處理的元素?cái)?shù)量不確定時(shí),通常建議使用。
LiskedList<T>鏈表適合元素?cái)?shù)量不固定,而且需要經(jīng)常增減節(jié)點(diǎn)的情況,鏈表增減元素效率高。
Queue<T>隊(duì)列適合于先進(jìn)先出的情況。
Stack<T>堆棧適合于先進(jìn)后出的情況。
Dictionary<K,T>字典適合于需要鍵值對(duì)操作的情況。

到此這篇關(guān)于C#數(shù)據(jù)結(jié)構(gòu)介紹的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論