泛型集合与非泛型集合,泛型

2016-12-15  本文已影响0人  Unity学习的路上

ArrayList//非泛型集合

非泛型集合添加元素演示

public void Test1(){

ArrayList al = new ArrayList ();

al.Add ("张三");

al.Add ("李四");

al.Add (1);//非泛型集合可以添加各种类型的数据

}

ArrayList 是集合数组,所以有下标可以用for循环遍历。也可以用foreach遍历

泛型集合添加元素演示

List<T>//泛型集合

Listlist<string> list= new List<string>();

list.Add()//这里添加的元素必须是string类型的,因为上面泛型集合已经限定了只能用string类型

非泛型集合与泛型集合添加元素的效率是不同的

因为非泛型集合如果添加值类型元素需要将其装箱(转换成Object类型)当获取元素时需要拆箱(按地址取值,在转换成类型),而泛型集合指定了类型之后就不会有这种装箱和拆箱的过程,所以效率大大提升。

泛型类

//演示引用类型限定

//class 表示限定的是引用类型

//public void Swap(ref T num1,ref T num2) where T:class//泛型类,同时限定T必须是引用类型

// {

// T temp = default(T);//给T一个默认值

// temp = num1;

// num1 = num2;

// num2 = temp;

// }

}

public T Swap(ref T num1,ref T num2) where T:IComparable//实现泛型的比较

{

if (num1.CompareTo (num2) < 0) {

return num2;

} else {

return num1;

}

}

CompareTo() 这个方法有三个返回值,分别是0,1,-1.

返回为 0 意味着相等

返回为 1  表示降序

返回为 -1  表示升序

上一篇 下一篇

猜你喜欢

热点阅读