什麼是集合:集合就是一種存放多個資料的容器型別,比如最簡單的集合:陣列array(完整的型別是system.array)。
為什麼需要集合:集合比陣列更加強大,集合實現了更加豐富的功能,可以提高開發效率。
本篇部落格介紹以下幾種常用集合:
優點:初始化時可以不指定長度,可以使用count屬性獲取長度,隨時新增add、刪除remove,removeat,訪問通過索引[index]。
缺點:比陣列耗費更多記憶體,讀取速度比陣列慢,arraylist是非泛型集合,裡面放的是object類,需要執行裝箱拆箱操作,有效能損耗。
菜鳥教程:
為避免動態陣列arraylist裝箱和拆箱的問題,通常使用list泛型來指定特定的型別,以減少效能損耗。
using system;輸出結果:using system.collections.generic;
using system.linq;
namespace test
stulist.clear();//移除所有元素}}
public class student
public void printname()}}
鍵值對型別安全,沒有裝箱和拆箱的效能損耗,查詢等操作速度快,單執行緒中推薦使用 dictionary,有泛型又是,且讀取速度快,容量利用更充分。對鍵值對的操作具體可看我的另一篇部落格:
棧是一種先進後出,後進先出的物件集合,好比是只有乙個開口的羽毛球筒,最先放進去的球,是最後乙個拿出來的。
棧的常用方法:
入棧push()
出棧pop()
獲取棧頂物件peek()
//再次新增物件
st.push('e');
st.push('f');
//輸出頂棧物件
console.writeline("the next poppable value in stack: ",st.peek());
console.write("current stack: ");
foreach (char c in st)
console.writeline();
console.writeline("removing values ");
//出棧
st.pop();
st.pop();
st.pop();
console.write("current stack: ");
foreach (char c in st)}}
}輸出結果:
佇列是一種先進先出的物件集合,類似兩端開口的羽毛球筒,先放進去的,重另一端先拿出來。
佇列的常用方法
出隊dequeue()
入隊enqueue()
**:
using system;輸出結果:using system.collections;
namespace test
; console.writeline();
//再次新增物件
q.enqueue('e');
q.enqueue('f');
console.write("current queue: ");
foreach (char c in q)
;console.writeline();
console.writeline("removing some values ");
//出隊
char ch = (char)q.dequeue();
console.writeline("the removed value: ", ch);
ch = (char)q.dequeue();
console.writeline("the removed value: ", ch);
console.readkey();}}
}
C 常用泛型集合
之前已經整理了泛型和集合的資料,今天來刷一下兩個c 提供的常用泛型集合 list 和dictionary 使用list 泛型集合,需要引入system.collections.generic 命名空間 list 是arraylist的泛型等效類,即list 物件的方法跟arraylist一樣,只不過...
C 常用集合總結 2
3 stack 表示物件的先進後出的集合。如下 stack stack new stack stack.push 1 stack.push aaa stack.push 1.11 foreach object i in stack foreach只是檢視元素並沒有真正移除元素 console.wri...
C 常用集合演算法
set intersection 求兩個容器的交集 set union 求兩個容器的並集 set difference 求兩個容器的差集 1 set intersection 求交集,求交集的兩個集合必須有序,目標容器開闢空間需要從兩個容器中去最小值,set intersection返回值即是交集中...