日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

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

作者:.NET開發(fā)菜鳥 ? 更新時間: 2022-05-23 編程語言

一、數(shù)組(Array)

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

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

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

動態(tài)數(shù)組具有以下的特點:

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

三、泛型List

泛型List具有以下的特點:

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

四、雙向鏈表(LinkedList)

雙向鏈表具有如下特點:

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

五、堆棧(Stack)

堆棧具有如下特點:

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

六、Queue(鏈表)

鏈表具有以下特點:

  • 鏈表是先進先出的原則,最先進入的元素最先被訪問,最后進入的元素最后被訪問。
  • Enqueue入隊列,Dequeue出隊列并返回列首元素,Peek只返回列首元素。?

七、字典(Dictionary)

字典具有以下特點:

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

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

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

原文鏈接:https://www.cnblogs.com/dotnet261010/p/12333598.html

欄目分類
最近更新