ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充.
ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间.
下面,我们还是在Student类的基础上利用ArrayList操作,从而了解ArrayList的用法
- public class Student
- {
- public Student(){}
- public Student(String name,int age,String hobby)
- {
- this.Name = name;
- this.Age = age;
- this.Hobby = hobby;
- }
- private String name;
- public String Name
- {
- get{return name;}
- set{name = value;}
- }
- private int age;
- public int Age
- {
- get{return age;}
- set{age = value;}
- }
- private String hobby;
- public String Hobby
- {
- get{return hobby;}
- set{hobby = value;}
- }
- public void say()
- {
- Console.WriteLine("大家好,我是'{0}',今年{1}岁,我喜欢'{2}'",
- this.Name,this.Age,this.Hobby);
- }
- }
编写测试类,了解ArrayList的方法
- using System.Collections;
- public class TestStudent
- {
- public static void main(String args [])
- {
- //建立ArrayList对象
- ArrayList students = new ArrayList();
- //实例化几个Student类对象
- Student rose = new Student("rose",25,"reading");
- Student jack = new Student("jack",28,"singing");
- Student mimi = new Student("mimi",26,"dancing");
- //利用ArrayList类的add()方法添加元素
- students.add(rose);
- students.add(jack);
- students.add(mimi);
- //利用ArrayList的Count属性查看该集合中的元素数量
- int number = students.Count;
- Console.WriteLine("共有元素" + number + "个");
- //读取单个元素,因为存入ArrayList中的元素会变为Object类型,
- //所以,在读取时间,
- Student stu = students[0] as Student;
- stu.say();
- //遍历元素 -- 通过索引
- for(int i = 0;i < students.Count;i ++)
- {
- Student a = students[i] as Student;
- a.say();
- }
- //利用foreach循环
- foreach(Object o in students)
- {
- Student b = o as Student;
- b.say();
- }
- //删除元素 通过索引删除
- students.removeAt(0);
- //删除元素, 通过对象名
- students.remove(jack);
- //清空元素
- students.Clear();
- //我们知道,ArrayList的容量会随着我们的需要自动按照一定规律
- //进行填充,当我们确定不再添加元素时,我们要释放多余的空间
- //这就用到了Capacity属性和TrimtoSize()方法
- //利用Capacity属性可以查看当前集合的容量
- //利用TrimtoSize()方法可以释放多余的空间
- //查看当前容量
- int number = students.Capacity;
- //去除多余的容量
- students.TrimtoSize();
- }
- }