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 表示升序