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();
}
}