C#常用数据结构
- Array-在内存中是连续的,查找速度快。但是类型必须是固定的,长度是必须固定的(会造成内存浪费和溢出),插入删除不方便
int[] arr = new int[10];
arr[0] = 1;
arr[1] = 3;
for ( int i = 0; i < 10; i++ )
{
Debug.Log(arr[i]);
}
foreach (int j in n )
{
Debug.Log(j);
}
- ArrayList-和array的区别就是类型可以不固定,长度可以不固定
- List-因为ArrayList在存储和检索是要进行装箱和拆箱工作,有性能损耗
关于装箱和拆箱
即确保了类型安全;也取消了装箱和拆箱的操作;它融合了Array可以快速访问的优点以及ArrayList长度可以灵活变化的优点。 - LinkedList 链表-在内部存储上不是连续的,所以插入删除速度快;由于其在内存空间中不一定是连续排列,所以访问时候无法利用下标,而是必须从头结点开始,逐次遍历下一个节点直到寻找到目标。所以链表更适合经常有增删的情况
- Queue 队列-先进先出,默认初始长度32,不够自动扩
- Stack 堆栈-后进先出
- Dictionary<K,T> 字典-键值对,访问快速,以空间换时间,通过更多的内存开销来满足我们对速度的追求(我们新建了一个空的字典,那么伴随而来的是2个长度为3的数组,慎用)
- 多维数组的声明与使用
常用的数据类型占位