++数组的局限性:数组只能存储相同类型的数据算法
int[] intArray = newint[2];数据库
intArray[0] = 1;编程
intArray[1] = 2;设计模式
intArray[2] =“卧底”; //报错类型不匹配数组
++集合的类型安全
++++泛型集合与非泛型集合。网络
--泛型集合类通常位于System.Collections.Generic名称空间。数据结构
--非泛型集合类位于System.Collections名称空间。性能
此外,System.Collections.Specialized名称空间中也包含一些有用的集合类。学习
++非泛型集合
++++下面是各类经常使用的System.Collection命名空间的类:
++++++动态数组(ArrayList):它表明了可被单独索引的对象的有序结合。它基本上能够替代一个数组。可是,与数组不一样的是,您可使用索引在指定的位置添加和移除项目,动态数组会自动从新调整它的大小。它也容许在列表中进行动态内存分配、增长、搜索、排序各项。
++++++堆栈(Stack):它表明了一个后进先出的对象集合。当您须要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项,称为弹出元素。
++++++队列(Queue):它表明了一个先进先出的对象集合。当您须要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。
++++++哈希表(HashTable):它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,并且您能够识别一个有用的键值。哈希表中的每一项都有一个键/值对。 键用于访问集合中的项目。
++泛型集合
++++下面是各类经常使用的System.Collection.Generic命名空间的类。
++++++Dictionary<TKey, Tvalue>:同哈希表同样,标示根据键进行的键值对的集合,不一样的是对键值进行了类型限定。
++++++List<T>:同ArrayList同样,标示经过索引访问对象的列表,不一样的是对存储的对象进行了类型限定。
++++++Stack<T>:同Stack同样,不一样的是对存储的对象进行了类型限定。
++++++Queue<T>:同Queue同样,不一样的是对存储的对象进行了类型限定。
++ArrayList动态数组
++++1、动态的增长和减小元素
++++2、实现了ICollection和IList和IEnumerable接口。
++++3、灵活的设置数组的大小。
++++4、不安全的集合类型。
++++5、其元素为值类型时,效率不高(装箱和拆箱耗性能)
++++ArrayList经常使用方法与描述
-- Add() 将对象添加到ArrayList的结尾处
-- Insert() 将元素插入ArrayList的指定索引处
-- Remove() 从ArrayList中移除特定对象的第一个匹配项
-- RemoveAt() 移除ArrayList的指定索引处的元素
-- Reverse() 将整个ArrayList当中元素的顺序反转
-- Contains() 肯定某元素是否在ArrayList中
-- Clear() 从ArrayList中移除全部元素
++List<T>泛型动态数组
++++1、List类是ArrayList列的泛型等效类。
++++2、一样继承了IList接口,IEnumrator接口和ICollection。
++++3、与ArrayList不一样的是,声明集合时须要声明集合内部的数据类型,即T的类型。
++++4、安全的集合类型。
++++5、某种状况时,在处理值类型时其处理速度比ArrayList快的多。
++++List<T>经常使用方法与描述
-- Add() 将对象添加到List<T>的结尾处
-- Insert() 将元素插入List<T>的指定索引处
-- Remove() 从List<T>中移除特定对象的第一个匹配项
-- RemoveAt() 移除List<T>的指定索引处的元素
-- Reverse() 将整个List<T>当中元素的顺序反转
-- Contains() 肯定某元素是否在List<T>中
-- Clear() 从List<T>中移除全部元素
-- IndexOf(T) 搜索指定对象,并返回整个List<T>中第一个匹配项的从0开始的索引
++常见集合和列表实现接口
++++IEnumerator<T>: 这个接口定义了方法GetEnumerator(),返回一个实现了IEnumerator接口的枚举。 若是将foreach语句用于集合,就须要实现该接口。
++++ICollection<T>: ICollection<T>接口由泛型集合类实现。 使用这个接口能够获取集合中的元素个数(count),把集合复制到数组中(CopyTo()),还能够添加和删除元素。
++++IList<T>: IList<T>接口用于可经过位置访问其中的元素列表,这个接口定义了一个索引器,能够在集合指定位置插入或删除某些项。List<T>接口派生自ICollection<T>接口。
++++IDictionary<TKey, TValue>: IDictionary<TKey, TValue>接口由包含键和值的泛型集合类实现。 使用这个接口能够访问全部的键和值。 使用键类型的索引器能够访问某些项,还能够添加或删除某些项。
++堆栈(Stack)
++++1、后进先出(LIFO)的一种数据结构,本质上堆栈也是一种线性结构。
++++2、线性结构的基本特色: 即每一个节点有且只有一个前驱节点和一个后续节点。
++++3、随着像Stack中添加元素,容量经过从新分配按需自动增长。
++++4、能够接受null做为有效值。
++++5、容许重复的元素。
++++6、不安全的数据结构。
++++7、其泛型为Stack<T>。
++++Stack经常使用方法与描述
-- Push() 将对象插入Stack的顶部(入栈操做)。
-- Pop() 移除并返回Stack顶部的对象(出栈操做)。
-- Peek() 返回位于stack顶部的对象,但不移除。
-- Contains() 肯定某元素是否在栈中。
-- Clear() 从stack中移除全部对象。
-- Count() 获取栈中包含的元素个数。
++队列(Queue)
++++1、先进先出(FIFO)的一种数据结构。
++++2、随着向Queue中添加元素,容器经过从新分配按需自动增长,能够经过TrimToSize来减小容量。
++++3、能够接受null做为有效值。
++++4、容许重复的元素。
++++5、不安全的数据结构。
++++6、其泛型为Queue<T>。
++++7、在A*算法中会用优先级队列处理路径节点。
++++Queue经常使用方法与描述
-- Enqueue() 将对象添加到Queue的结尾处,入队。
-- Dequeue() 移除并返回位于Queue开始处的对象。
-- Peek() 返回位于Queue开始处的对象但不将其移除。
-- Contains() 肯定某元素是否在Queue中。
-- Clear() 从Queue中移除全部对象。
-- Count() 获取Queue中包含的元素个数
++HashTable(哈希表)
++++1、处理和表现相似key-value的键值对的集合。
++++2、key值必须惟一,区分大小写。
++++3、Value能够是变量,也能够是对象。
++++HashTable经常使用方法与描述:
-- Add() 将指定的键和值添加到哈希表中。
-- Clear() 从Hashtable中移除全部的元素。
-- ContainsKey() 判断Hashtable是否包含指定的键。
-- ContainsValue() 判断Hashtable是否包含指定的值。
-- Remove() 从Hashtable中移除带有指定的键的元素。
-- Keys() 获取一个ICollection,包含Hashtable中的键。
-- Values() 获取一个ICollection,包含Hashtable中的值。
#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++立钻哥哥推荐的拓展学习连接(Link_Url):
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++C#事件:http://www.noobyard.com/article/p-dietpjzv-gm.html
++++C#委托:http://www.noobyard.com/article/p-oiohmxtc-gh.html
++++C#集合:http://www.noobyard.com/article/p-vdfpislb-ex.html
++++C#泛型:http://www.noobyard.com/article/p-vujvnprk-ee.html
++++C#接口:http://www.noobyard.com/article/p-emexlwmu-dm.html
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:http://www.noobyard.com/article/p-uchiaxzw-cq.html
++++C#数据类型:http://www.noobyard.com/article/p-kqtbvoyq-ba.html
++++Unity3D默认的快捷键:http://www.noobyard.com/article/p-gbllyjbs-s.html
++++游戏相关缩写:http://www.noobyard.com/article/p-pzpxsztf-gm.html
++++Unity引擎基础:http://www.noobyard.com/article/p-ggcuedyq-ka.html
++++Unity面向组件开发:http://www.noobyard.com/article/p-eiunlkzw-dt.html
++++Unity物理系统:http://www.noobyard.com/article/p-mcqnwufb-kd.html
++++Unity2D平台开发:http://www.noobyard.com/article/p-brjbvtac-hs.html
++++UGUI基础:http://www.noobyard.com/article/p-nvzrvath-mc.html
++++UGUI进阶:http://www.noobyard.com/article/p-tpspjolu-gt.html
++++UGUI综合:http://www.noobyard.com/article/p-nfgrebqx-gg.html
++++Unity动画系统基础:http://www.noobyard.com/article/p-otjpnbzz-dq.html
++++Unity动画系统进阶:http://www.noobyard.com/article/p-hxghrtgb-bp.html
++++Navigation导航系统:http://www.noobyard.com/article/p-skpvrobt-t.html
++++Unity特效渲染:http://www.noobyard.com/article/p-sudpqrhk-bp.html
++++Unity数据存储:http://www.noobyard.com/article/p-ybvcceul-m.html
++++Unity中Sqlite数据库:http://www.noobyard.com/article/p-vxpuqxev-ca.html
++++WWW类和协程:http://www.noobyard.com/article/p-alggjlwu-cy.html
++++Unity网络:http://www.noobyard.com/article/p-bjvfgzwg-dw.html
++++设计模式简单整理:http://www.noobyard.com/article/p-scmbzocc-hg.html
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++UML类图:http://www.noobyard.com/article/p-aakurcwi-bm.html
++++Unity知识点0001:http://www.noobyard.com/article/p-bqmetnys-ep.html
++++U3D_Shader编程(第一篇:快速入门篇):http://www.noobyard.com/article/p-ptwlpwbc-gz.html
++++U3D_Shader编程(第二篇:基础夯实篇):http://www.noobyard.com/article/p-dadqpvvp-hv.html
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft:lovezuanzuan--_--