class Program
{
static void Main(string[] args)
{
//----------------集合的动态数组------------------------//
int[] arr = new int [10];
foreach (int item in arr)
{
Console.WriteLine(item);
}
ArrayList list = new ArrayList();//括号为空的时候,里面默认的容量是0;添加一个元素就是默认为4;
// list.Capacity ;//列表的容量
list.Capacity = 5;//可以设置容量 也可以获得容量
list.Add(7);
list.Add(17);
list.Add(27);
list.Add(37);
for (int i = 0; i < 17; i++)
{
list.Add(7);
}
Console.WriteLine(list.Capacity); //new ArrayList() 括号里面默认是4 超出范围 就翻倍 *2 答案是8;
ArrayList list = new ArrayList(new int[] { 1, 2, 3 });
list.Add(7);
Console.WriteLine(list.Capacity);//括号里面有初始化的长度 超出范围 就翻倍 *2 答案是6
//list.Count 列表的实际元素的个数;
Console.WriteLine(list.Count);
ArrayList list = new ArrayList(new int[] { 1, 2, 3, 4, 5 });//初始化长度 为5;
Console.WriteLine(list.Capacity);
list.Add(8);//每次添加的时候都会去检测它的容量大小,超出了就会翻倍
Console.WriteLine(list.Capacity);
list.Capacity = 6;//把默认的空去掉,节省内存;设置实际长度的个数(长度);
Console.WriteLine(list.Capacity);
list.Capacity = list.Count;
Console.WriteLine(list.Capacity);
list.Add("ww");//单个添加到末尾
list[2] = "水贝村";//通过索引可以设置值,也可以获取值;
foreach (int i in new int[] { 11, 22, 33, 44, 55, 66, 77, 88 })
{
list.Add(i);//利用循环添加数组 第一种
}
list.AddRange(new int[] { 88, 99, 123, 456 });//利用属性方法添加数组 第二种
//list.Clear();//清除列表所有元素;但不包括长度
Console.WriteLine(list.Contains(88));//判断集合里是否包含指定元素,返回一个布尔值;
Console.WriteLine(list.Capacity);
ArrayList list = new ArrayList(new int[] { 1, 2, 3, 4, 5 });
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
ArrayList list1 = list.GetRange(1, 3);
foreach (int i in list1)//截取 遍历 返回的是一个集合
{
Console.WriteLine(i);
}
list.IndexOf(1);
Console.WriteLine(list.IndexOf(1));
Console.WriteLine(list.LastIndexOf(3));
list.Insert(2, 88);//插入 没有返回值所以不能直接打印 集合类型 遍历
list.InsertRange(2, new int[] { 88, 123, 456, 789, 11, 12, 13 });
list.Sort();//从小排到大
list.Reverse();//反转
list.TrimToSize();//count的封装方法 把多余的容量去掉,返回实际元素个数 capactiy=count;
Console.WriteLine(list.Capacity);
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
//----------集合的堆栈 Stack-------------
Stack stack = new Stack();
stack.Push(2);
stack.Push(15);
stack.Push(33);
foreach (int i in stack)
{
//Console.WriteLine(i);//后进先出
}
// int s= (int )stack.Pop();//移除第一个 33 (int) 强制转换类型
int s = (int)stack.Peek();//返回第一个(顶部)元素,但不移除它
foreach (int i in stack)
{
//Console.WriteLine(i);//后进先出
}
bool b = stack.Contains(88);
// Console.WriteLine(b);
Object[] arr = stack.ToArray();//转换成数组
foreach (Object i in arr)
{
// Console.WriteLine(i);
}
// Console.WriteLine("元素个数:{0}",stack.Count);//只有长度个数(长度),没有容量
//-------------------队列Queue---------------
Queue queue = new Queue();
queue.Enqueue(34);
queue.Enqueue(44);
queue.Enqueue(54);
foreach (int i in queue)
{
// Console.WriteLine(i);
}
// object[] arr = queue.ToArray();//转换成数组
foreach (Object i in arr)
{
Console.WriteLine(i);
}
queue.TrimToSize();//设置队列的实际容量
Console.WriteLine(queue.Count);
int[] arr1 = new int[3]{1,2,8};
Console.WriteLine(arr1.Max());
Console.ReadKey();
}
}
unity游戏开发-C#语言基础篇(动态数组堆栈集合及Queue队列)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Java中的LinkedList是采用双向循环列表实现的。 利用LinkedList可以实现栈(stack)、队列...
- 如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈","队列",而最关键的是这些到底是什么意思?最关键的是即使...