一、ArrayList类?
ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看作扩充了功能的数组,但是它并不等同于数组。
与数组相比,ArrayList类提供以下功能。
1.1数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。
1.2ArrayList提供添加,删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的值。
1.3ArrayList提供将只读和固定大小包装返回到集合的方法,而数组不提供。
1.4ArrayList只能是一维形式,而数组可以是多维的。
声明ArrayList对象:
ArrayList arrayList = new ArrayList();
ArrayList常用方法:
//集合就是一个动态的数组根据你插入的信息的个数来决定集合的个数(长度)
ArrayList ay = new ArrayList();
//(1)添加 add
//Add 返回的结果应该是 成功或失败
//实际返回结果是当前插入进去集合中的下标位置
Console.WriteLine(ay.Add("A"));
ay.Add("12");
ay.Add(true);
ay.Add('啊');
ay.Add(9.8);
//(2)个数长度
Console.WriteLine(ay.Count);
//判断当前元素是否存在集合中
Console.WriteLine(ay.Contains('啊'));
//判断当前的元素在集合的位置(下标),如果元素不存在与数组当中默认返回-1。
Console.WriteLine(ay.IndexOf("13"));
//插入 能够指定插入的位置
ay.Insert(0,"张三");
//获取单个值
Console.WriteLine(ay[0]);
//循环 for foreach
for (int i = 0; i < ay.Count; i++)
{
Console.WriteLine(ay[i]);
}
Console.WriteLine("华丽的分割线------------");
foreach (object item in ay)
{
Console.WriteLine(item);
}
//删除
ay.Remove("张三");
//删除全部 清空
ay.Clear();
Console.ReadLine();
//把集合合并到另外一个集合里面 是从最后一个位置开始的
ArrayList a = new ArrayList();
a.Add(1);
a.Add(2);
a.Add(3);
a.Add(4);
a.Add(5);
ArrayList b = new ArrayList();
b.Add(6);
b.Add(7);
b.Add(8);
b.Add(9);
b.Add(10);
//Console.WriteLine("合并前:-------"+a.Count);
将a集合和b集合 合并一个集合
//a.AddRange(b);
//Console.WriteLine("合并后:-------" + a.Count);
//Console.ReadLine();
a.InsertRange(a.Count,b);
foreach (object item in a)
{
Console.WriteLine(item);
}
Console.ReadLine();
二、Hashtable(哈希表)?
HashTable通常称为哈希表,它表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。它的每一个元素都是一个存储在DictionaryEntry对象中的键/值对。键不能为空引用,但值可以。
声明HashTable对象:
Hashtable hashtable = new Hashtable();
HashTable常用方法:
//Hashtable 键值对 键不能重名 如果重名就会报错
Hashtable ht = new Hashtable();
ht.Add("ZH","中国");
ht.Add("EN","英国");
ht.Add("UA","美国");
ht.Add("HK","香港");
//返回是当前表里所有的Keys
//获取整张表的数据
foreach (object item in ht.Keys)
{
Console.WriteLine(item+"---"+ht[item]);
}
//获取单个对象
Console.WriteLine(ht["UA"]);
Console.ReadLine();
三、SortedList(排序列表)?
SortedList类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。
排序列表是数组和哈希表的结合。它包含一个可使用键或索引访问的各项的列表。如果使用索引访问各项,则它是一个ArrayList,如果使用键访问各项,则它是一个哈希表。集合中的各项重视按键值排序。
声明SortedList对象:
SortedList sl= new SortedList();
SortedList常用方法:
//SortedList 有序列表 ArrayList 和 Hashtable 的结合体
SortedList sl = new SortedList();
sl.Add("ZH", "中国");
sl.Add("EN", "英国");
sl.Add("UA", "美国");
sl.Add("HK", "香港");
//如果用下标进行输出
for (int i = 0; i < sl.Count; i++)
{
//sl.GetKey(i) 根据下标获取Key
//然后根据Key获取value
Console.WriteLine(sl[sl.GetKey(i)]);
}
Console.WriteLine("华丽的分割线-----------");
for (int i = 0; i < sl.Count; i++)
{
Console.WriteLine(sl.GetKey(i));
}
Console.ReadLine();
四、堆栈(Stack)?
堆栈代表一个后进先出的对象集合。需要对各项进行后进先出的访问时,则使用堆栈。在列表中添加一项,则称为推入元素,移除一项时,称为弹出元素。
声明Stack对象:
Stack st= new Stack();
Stack常用方法:
// Stack 堆栈 后进先出
Stack s = new Stack();
s.Push(1);
s.Push(3);
s.Push(5);
s.Push(7);
//循环输出
foreach (object item in s)
{
Console.WriteLine(item);
}
//找到栈顶元素
Console.WriteLine(s.Peek());
//移除
s.Clear();
五、队列(Queue)?
队列(Queue)代表了一个先进先出的对象集合。对各项进行先进先出的访问时,则使用队列。添加一项则称为入队。移除一项时则称为出队。
声明Queue对象:
Queue q= new Queue();
Queue常用方法:
//队列Queue 先进先出
Queue q = new Queue();
//添加
q.Enqueue(1);
q.Enqueue(2);
q.Enqueue(3);
q.Enqueue(4);
Console.ReadLine();