C# 集合總結
1,Array ,ArrayList,List<類型> 數組, 連續分配的,查詢速度快,但增刪不方便
#region 鏈表
2,LinkedList<類型>,LinkedListNode<類型> 鏈表 ,非連續分配,每個元素都有前後節點,找元素只能遍歷,查找不方便,增刪容易
3,Queue<T> 隊列,也是鏈表,先進先出,增刪快,可以重復數據,一般放置任務,延遲執行
4,Stack<T> 棧,也是鏈表,先進後出
1)Push
2)pok
3)
#endregion
#region Set:
1,HashSet<T> hash集合,hash分布,去重復,元素間沒有關系,不能索引獲取數據
HashSet<String> hashSet=new HashSet<String>();
hashSet.Add("123");
hashSet.Add("456");
hashSet.Add("456");
應用:兩個HashSet 可以進行 交、叉、並、補,操作
2,SortedSet<T> 排序集合,去重+排序,交、叉、並、補 也可以
#endregion
#region Hashtable
1,Hashtable :key-value類型(無序類型),體積動態增加,基於數組實現的,增刪查改都快,但是浪費空間,效率可能會低。
線程安全:只有一個線程寫,多個線程讀。
Hashtable table=new Hashtable();
table.Add("123","456")
table[234]=456;
#endregion
#region Dictionary key-value 類型
1,Dictionary<int,string> 有序的,增刪查效率高(數據太多除外)
2,SortedDictionary<int,string>,排序字典,自動排序,增刪效率就稍微低一點
3,SortedList list=new SortedList(), 排序列表,key不能重復添加
list.Add("aa","bb");
#endregion
foreach 就是叠代器的實現
yieid 叠代器的實現,狀態機形式的,在使用的時候去取值,不在初始化的時候一次性把數據加載 (性能優化)。
C# 集合總結