集合

 

数组的缺点:数组初始化后,容量固定

数组存储数据类型固定

 

集合提供了一种灵活的处理方法,与数组不同,

集合处理对象组可以根据程序需要动态增长

或收缩存储的容量

 

对于某些集合,还可以放入该集合任何对象

分配一个键 ,以便通过键快速访问和检索对象

 

集合是类 因此必须在使用前进行初始化,才能向集合添加元素

泛型集合(泛型类) 非泛型集合

 

使用非泛型集合需要引入命名空间:

system.collection

泛型集合

system.collection.generic

非泛型集合

Arraylist: 大小可以根据需求可调整的数组列表类该类中储存的元素默认object

 

Hashtable:根据键来存取对应的值 把键和值都是object类型

Queue: 队列集合 表示集合中的元素先进先出FIFO

Stack:栈 表示集合中的元素后进先出LIFO

 

 

 

 

Arraylist: 的使用

ArrayList arrayList = new ArrayList();

arrayList.Add(1234);

arrayList.Add(2.3f);

arrayList.Add("按时打卡了时间啊");

在指定下标插入元素 不会移除元素

arrayList.Insert(0, "baobao");

移除指定下标

arrayList.RemoveAt(2);

 

翻转结合

arrayList.Reverse();

获取集合长度

Console.WriteLine("{0}", arrayList.Count);

Console.WriteLine(arrayList[1]);

foreach (var item in arrayList)

{

Console.WriteLine(item);

}

Console.WriteLine(" ");

arrlist:1,支持灵活改变储存空间大小

2,可以灵活插入,删除,访问元素

3,不是强类型 速度比数组要慢*/

 

Console.WriteLine("_______________________________________");

Stack stack = new Stack();

元素入栈,将元素插入集合中(插入顶部)

stack.Push("挖坑");

stack.Push("埋点土");

stack.Push("数个一二三四五");

出栈.将栈顶中的元素返回并移除

Console.WriteLine(stack.Pop());

出栈,将栈顶的元素返回但不移除

Console.WriteLine(stack.Peek());

清除栈中所有元素

stack.Clear();

将栈中所有元素转存某个数组

object[] arr = stack.ToArray();

遍历

foreach (var item in stack)

{

Console.WriteLine(item);

}

栈:后进先出的数据结构 2,随着向栈中增加元素,栈空间会根据

内容重新分配空间

3,栈中允许存放null作为有效值 栈中允许存放重复值*/

队列FIFO

Console.WriteLine("_____________________________________________-");

Queue queue = new Queue();

入队列,将元素添加到队列

queue.Enqueue("白日依山尽");

queue.Enqueue("黄河入海流");

queue.Enqueue("举头望明月");

queue.Enqueue("低头思故乡");

出队列 dequeue出队列并移除

Console.WriteLine(queue.Dequeue());

出队列 不移除

Console.WriteLine(queue.Peek());

清除队列

queue.Clear();

foreach (var item in queue)

{

Console.WriteLine(item);

}

判断队列是否存在某个元素

if (queue.Contains("举头望明月"))

{

Console.WriteLine("我是一只小鸭子");

}

获取个数

Console.WriteLine(queue.Count);

队列转成数组

object[] ojbarr = queue.ToArray();

Console.WriteLine("_____________________________________________________");

1,queue: 是一种先进先出的数据结构

2,随着忘队列中添加元素,队列存储空间动态调整大小

3,queue也接受null作为有效值,栈中允许存放重复值

4,在AI寻路算法中经常会用到queue

二,泛型集合

1,字典:dictionary:用来储存有一一对应关系的数据的集合

使用key-value(键值对)来储存数据

字典中key是惟一的,value可以是变量,也可以是对象,

字典是一个泛型集合(泛型类),实例化的时候必定定key和value的类型

*/

trygetvalue通过指定的key来获取相应的value,如果能获取到。

或者返回true,并将对应的value放入out参数中

3,访问字典中的value,可以通过字典对象【key】

remove 移除字典中的字符 移除的是字典中的键值对

判断是否出现指定字符key containkey

判断字典中是否有指定的value containvalue

获取字典中键值对的个数

Console.WriteLine(Dic.count);

获取字典所有的key

dic.keys: 获取所有的key

Dictionary<string, int>.keycollection = DictionaryBase.keys;

foreach (var item in collection)

{

Console.WriteLine(item);

}

获取所有value

Dictionary<string,int>.valuecollection values=DictionaryBase.values'

foreach'

10,遍历字典

foreach (var item in Dic)

{

Console.WriteLine(item.key+":"+item.value);

}

 

 

Console.ReadKey();

}

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值