集合
ArrayList
ArrayList 是一个可以动态维护长度的集合
其存储结构可表示为:
索引(下标) 值
0 obj1
1 obj2
2 obj3
…… ……
使用
- 引入System.Collections命名空间
- 实例化一个对象
ArrayList 名称 = new ArrayList()
示例:
ArrayList students = new ArrayList();
students.Add(s1);
students.Add(s2);
students.Add(s3);
students.Add(s4);
Console.WriteLine("\n这些是使用集合ArrayList存储输出的");
foreach (Student s in students)
{
s.SayHi();
}//也可以放着循环中,通过students[i]来访问
Hashtable 哈希表
结构如下:
键 | 值 |
---|---|
键1 | 值1 |
键2 | 值2 |
键3 | 值3 |
//Hashtable存储信息
Hashtable teachers = new Hashtable();
teachers.Add(t1.Name, t1);
teachers.Add(t2.Name, t2);
teachers.Add(t3.Name, t3);
Console.WriteLine("\n这些是用哈希表存储输出的:");
foreach (string str in teachers.Keys)
{
Teacher s = (Teacher)teachers[str];
s.SayHi();
}
List
- 引入命名空间
System.Collections.Generic - 使用示例:
Console.WriteLine("\n这些是用泛型集合List输出的");
List<Student> listStudent = new List<Student>();
listStudent.Add(s1);
listStudent.Add(s2);
listStudent.Add(s3);
listStudent.Add(s4);
for (int i = 0; i < listStudent.Count; i++)
{
listStudent[i].SayHi();
}
- 说明
List<类> listStudent = new List<类名>() 之后就只能存储这个类实例化出的对象,不能存储其他类型。
Dictionary<>
Dictionary
Console.WriteLine("\n 这些是用Dictionary存储输出的:");
Dictionary<int, Teacher> dicTeacher = new Dictionary<int, Teacher>();
dicTeacher.Add(1, t1);
dicTeacher.Add(2, t2);
dicTeacher.Add(3, t3);
foreach (Teacher t in dicTeacher.Values)
{
t.SayHi();
}
队列和栈
栈 Stack与Stack
1.入栈Push
2.出栈PopQueue与Queue
1.入队Enqueue
2.出队Dequeue
//栈 Stack与Stack<T>
Console.WriteLine("\n\n这是存储到栈再输出的结果");
Stack<Student> s0 = new Stack<Student>();
for (int i = 0; i < 4; i++)
{
s0.Push(listStudent[i]);//进栈
}
int scount = s0.Count;
for (int i = 0; i < scount; i++)
{
s0.Pop().SayHi();//出栈
}
//队列 Queue与Queue<T>
Console.WriteLine("");
Queue<Teacher> queT = new Queue<Teacher>();
queT.Enqueue(t1);
queT.Enqueue(t2);
queT.Enqueue(t3);//进入队列
for (int i = 0; i < 3; i++)
{
queT.Dequeue().SayHi();
}