ArrayList是一种非泛型集合类型,允许用户存储任何数据类型的对象,
List 是一种泛型集合类型,允许用户存储声明时 List 指定的数据类型的对象。它是一个非常强类型的集合,
var arrayList = new ArrayList();
arrayList.Add(1); // 整型
arrayList.Add(2);
arrayList.Add("3"); // string 字符串
var list = new List<int>();
list.Add(1); // 只允许存储整型数据
list.Add(2);
list.Add(3);
当我们使用 ArrayList 时,通常需要我们对正在访问的对象进行装箱或拆箱来避免一些错误发生。但对于List来说,不存在这个情况。
列表是类型安全的,我们根本不需要进行任何类型转换
一般来说,List 比 ArrayList 更节省内存,因为它不必为集合中的每个元素存储对象引用。
List 比 ArrayList 的内存效率更高,因为类型安全所以List也比 ArrayList 具有更高的性能效率。与 ArrayList 相比, List 具有更好的 API 支持,通过它提供的方法和属性,可以更快地访问元素。,我们了解了 ArrayList 和 List 以及何时使用它们。很明显,List 在任何比较中都胜过 ArrayList,因为它更好,更高效且类型安全。
数组和集合概念,以及它们的区别:
数组一般是相同数据类型(object[]数组元素类型可以不同)的元素按一定顺序排列的集合。
数组是集合,集合不一定是数组。
数组读取(查询)速度比集合快。集合是线性表,在插入,添加,删除数据时比较方便,性能比数组会高。
数组存储的类型不限制。集合存储的类型只能是引用类型。
C#中的集合(Collection)和数组(Array)是两种不同的数据结构,它们之间有以下主要区别:
1。定义方式不同:集合是使用集合类定义的,如List或HashSet。数组是使用类型和大小显式定义的。
2。大小不同:数组的大小在创建后无法更改,而集合的大小可以根据需要动态增长。
3。内存布局不同:数组在内存中是连续的,而集合通常不是。
4。性能不同:访问数组元素通常比访问集合元素快,因为集合元素访问时可能需要进行装箱和拆箱操作。
5。索引访问:数组可以通过索引直接访问元素,而集合则需要使用迭代器或者在.NET 2.0及以上版本中使用foreach循环。
6。数据类型不同:数组可以存储基本数据类型(值类型),也可以存储引用类型,而集合只能存储引用类型,因为它们都继承自System.Object。