C# Day。8.0 数组升级集合~~~

今天是第8天,学习的是C#集合,集合共有6大类:

1,普通集合★★

2,泛型集合★★★

3,哈希表集合★★★

4,字典★★

5,栈桥集合★

6,队列集合★

一,数组于集合的区别:

数组:长度固定,类型相同;

集合:不固定类型,不固定长度

二,如何使用集合

引用命名空间:using System.Collections;

三,集合定义

1,普通集合

 

 

代码展示1:

观察这段代码:

1,定义:ArrayList 集合名称 =new ArrayList();

2,赋值:集合名称.Add(object类型);       object类型(基础类型):stirng,double,bool,int任意类型的都可以。

3,取值:集合名称[索引];          集合索引按先后输入顺序排列

4,获取集合个数:集合名称.Count;         只能统计个数,不能统计长度,注意和数组区分

 

 

代码展示2:

 

结合代码展示1发现,原本hh.[0]取值结果由abc变成了哈哈,集合个数由3变成了4。

集合插队:变量名.Insert(要插入位置的索引,要插入的值);

 

 

代码展示3:

结合代码1,原本应该是是显示为abc,3 变成了 123, 2  。这是移除了值abc造成。

集合移除1:数组名称.Remove(值);        移除某一个值,如果有多个一样的值,只移除第一个。

 

 

展示代码4:

结合对比代码展示3,同样是移除某个值,RemoveAt移除的对应索引的值。

集合移除2:集合名称,RemoveAt(索引);    移除对应索引的值。

 

代码展示5:

(1)

(2)

(3)

对比(1)(2)发现,集合被倒序输出。

对比(2)(3)发现,集合从第一个索引开始由三个值被倒序输出。

倒序输出:

1,集合名称.Reverse();               将原本顺序输出改为倒序输出。 

2,集合名称.Reverse                 (要开始倒序输出的索引,要倒序输出的个数)

 

 

代码展示6:

集合被清空了。

清空:集合名称.Clear();

 

2,泛型集合

泛型 集合与普通集合的区别:

泛型集合针对同一类型(取值操作方便) 强类型集合

普通结合针对所有类型(取值操作不方便)弱类型集合

代码展示1:

定义: List<指定基类(int/string)> 集合名称 =new List <与前面指定基类相同>();

操作与普通类型代码完全一致。

赋值:集合名称.Add(object类型);       object类型(基础类型):stirng,double,bool,int任意类型的都可以。

取值:集合名称[索引];          集合索引按先后输入顺序排列

获取集合个数:集合名称.Count;         只能统计个数,不能统计长度,注意和数组区分

集合插队:变量名.Insert(要插入位置的索引,要插入的值);

集合移除1:数组名称.Remove(值);        移除某一个值,如果有多个一样的值,只移除第一个。

           2:集合名称,RemoveAt(索引);    移除对应索引的值。

集合倒序:1,集合名称.Reverse();               将原本顺序输出改为倒序输出。 

              2,集合名称.Reverse               (要开始倒序输出的索引,要倒序输出的个数)

 

3,哈希表集合     弱类型、

特点:自定义索引的集合 最有特点的集合

哈希表集合最主要的特点就是自定义索引,这是最重要的集合之一,以后非常会常用。

定义:Hashtable 集合名称 =new Hashtable();

赋值:变量名称.Add(自定义的索引(字符串索引加""),值);    键值对,一个键对应一个值。

不能插队也不能反转。

取值:

取值时发现只能输出同一类型的值,否则就会报错。

 

 

4,字典集合     强类型

代码展示:

与哈希表集合对应的强类型

定义 Dictionary<索引类型,值类型> 集合名称 =Dictionary<与前面一样索引类型,与前面一样值类型>();

使用方法与哈希表类型一致。

 

5,队列集合    

代码展示:

(1)

(2)

观察两段代码,第一个只输出了一个值,第二个又输出了一个值,队列集合遵循先进新出的原则,先赋值的,最先出去,一次只能一个一个的出。

定义:Queue 集合名称=  new Queue();

赋值:集合名称.Enqueue(值);

取值:集合名称.Dequeue();

 

6,栈桥集合

代码展示:

与队列集合相反,是后进先出。

定义:Stack 集合名称=new Stack();

赋值: 集合名称.Push(值);

取值:集合名称.Pop(); 

 

posted on 2017-03-02 11:55  张鑫4477  阅读(339)  评论(0编辑  收藏  举报