List与Arraylist比较

1.list类型安全,arraylist类型不安全。
why?
answer:我们使用list时候初始化时是这样的:
private List<string> s = new List<string>();
使用arraylist时候初始化时是这样的:
private ArrayList al = new ArrayList();
我们可以看到list在初始化的时候指明了我这个是用来存储string类型的数据的,你存放其他类型的妥妥的报错,而arraylist则没有,因此使用arraylist存放数据的时候就涉及到拆装箱操作(说白了就是数据类型之间的转换),容易造成数据在转换过程中的“损坏”。
2.list是一个泛型接口,arraylist是一个普通的(算是吧)类。
我们查看API可以看到,list类是这样的:

public class List<T> : IEnumerable, ICollection, IList, ICollection<T>, IEnumerable<T>, IList<T>{}

(泛型就是指list中的T可以是任意数据类型)
而array list类是这样的:

public class ArrayList : IEnumerable, ICloneable, ICollection, IList{}

其中添加数据的方法是这样定义的:

 public virtual int Add(object value);

arraylist把存进来的数据都转换成object类型,这也补充了我上边说的拆装箱。

emmm。。。。。。暂时就想到这么多。

猜你喜欢

转载自blog.csdn.net/qq_41692884/article/details/83585960