动态维护集合:ArrayList初始化与泛型使用

需积分: 0 0 下载量 118 浏览量 更新于2024-07-13 收藏 714KB PPT 举报
"ArrayList的初始化和使用泛型集合" ArrayList是.NET Framework中的一种动态数组,它允许我们在运行时改变数组的大小,从而克服了传统数组容量固定的限制。在使用ArrayList时,我们需要首先引入`System.Collections`命名空间,这是因为ArrayList类位于这个命名空间内。 初始化ArrayList有两种方式: 1. 不指定初始容量: ```csharp ArrayList Students = new ArrayList(); ``` 这将创建一个空的ArrayList,初始容量默认为0,随着元素的添加,容量会自动增长。 2. 指定初始容量: ```csharp ArrayList Teachers = new ArrayList(5); ``` 这里指定了初始容量为5,这意味着ArrayList内部会预留5个位置来存储元素。 ArrayList添加元素使用`Add`方法,该方法接受一个Object类型的参数,并将其添加到ArrayList的末尾。例如,如果我们有一个自定义的`Student`类,我们可以创建一个Student对象并添加到ArrayList中: ```csharp Student scofield = new Student("Scofield", Genders.Male, 28, "越狱"); ArrayList students = new ArrayList(); students.Add(scofield); ``` `Add`方法返回添加元素后的索引,因此可以连续添加多个元素并跟踪索引。要获取ArrayList中的元素数量,可以使用`Count`属性: ```csharp int studentCount = students.Count; ``` 然而,ArrayList的一个显著缺点是它不强制类型检查。这意味着你可以向ArrayList中添加任何类型的对象,这可能导致运行时类型转换异常。为了解决这个问题,.NET Framework引入了泛型集合,如`List<T>`。泛型集合提供了类型安全,确保所有添加到集合的对象都是同一类型的。 例如,使用泛型集合初始化一个只包含`Student`对象的列表: ```csharp List<Student> studentsList = new List<Student>(); studentsList.Add(scofield); ``` 这里的`List<T>`(T代表类型参数)确保列表中的所有元素都是`Student`类型。这样,编译器就能在编译时检查类型,避免了运行时可能出现的问题。 ArrayList是一种方便的动态数组实现,而泛型集合如`List<T>`提供了更强的类型安全性。在开发过程中,通常推荐使用泛型集合,特别是在需要类型检查的情况下,以减少潜在的错误和提高代码的可读性。