泛型集合,非泛型集合

来源:互联网 发布:web在线直播源码 编辑:程序博客网 时间:2024/06/07 03:17

ArrayList:非泛型集合

List:泛型集合

集合跟数组比较我们更容易理解。数组:1,长度固定2,数据类型预先声明

集合:1,长度可变2,数据类型预先声明的为泛型集合,数据类型不限定为非泛型

 

ArrayList:长度不固定,元素数据类型为object的集合。

(object类之间或间接为所有类的父类,根据里氏转换,子类可以直接给父类赋值,所以如果此处要求我们的数据类型为object就等于任何类型的数据都可以储存,但实际上不管我们存入的数据为什么类型,它都被隐式转换成了object类型)。

List:长度不固定,元素数据类型需固定声明的集合。

ArrayList的命名空间为Collections,List的命名空间为Collections.Generic

非泛型举例:

static void Main(string[] args)        {            //声明一个非泛型集合List            ArrayList list = new ArrayList();            //一次添加元素 接入的元素类型可以是int类型,bool类型,string类型,char类型,数组类型            //这些类型都是object的子类型,根据里氏转换,存储进入集合后都隐式的转为了object类型            list.Add(1);            list.Add(true);            list.Add("张三");            list.Add('男');            list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });            //遍历输出            for (int i = 0; i < list.Count; i++)            {                Console.WriteLine(list[i]);            }            Console.ReadKey();        }

泛型举例: static void Main(string[] args)        {            //声明一个泛型集合,尖括号内声明集合元素的类型,一旦声明就不能改变            List<int> list = new List<int>();            list.Add(1);            list.Add(2);            list.Add(3);            for (int i = 0; i < list.Count; i++)            {                Console.WriteLine(list[i]);            }            Console.ReadKey();        }

总结:不管是非泛型或者泛型集合,长度都是不固定的。泛型是指集合元素类型限定了,而非泛型集合元素类型为object类型,相当于任何类型都可以。

相比数组的长度不可变,类型固定,集合更好用


0 0
原创粉丝点击