1、数据存储形式(缓存):
1)顺序存储(线性存储):数组、ArrayList
2) 链式存储:有利于元素增加与删除。
3) 哈希存储:每个元素通过其值计算存储(Hash)地址.HashTable
4) Map存储: 元素由key与value,每个元素key通过其值计算存储(Hash)地址。通过key查找访问元素,key-value映射。
2、c#集合框架
数组类型:ArrayList(动态数组), 工具类Array(静态函数)
堆栈类型:Stack(LIFO),Queue(FIFO)
键/值类型:HashTable,SortedList
强类型集合类型:DictionaryBase,CollectionBase
3、工具类Array使用
int[] x={1,2,3,4,5,6};
// Console.WriteLine(Array.BinarySearch(x, 6));
Array.Reverse(x);
for(inti=0;i<x.Length;i++)
Console.WriteLine(x[i]);
4、ArrayList的使用
动态数组,可以放置任意对象,自动调整长度。
ArrayList arr = new ArrayList();
arr.Add(10);//装箱
arr.Add("c#");
arr.Add(12.7);
//按照下标读取或删除
for(inti=0;i<arr.Count;i++)
Console.Write(arr[i]+" ");
Console.WriteLine();
foreach(object value in arr)
Console.Write(value + " ");
//移除
//arr.RemoveAt(0);
int c = arr.Count;
for (int i = 0; i < c; i++)
arr.RemoveAt(0);
//arr.Clear();
Console.WriteLine();
foreach (object value in arr)
Console.Write(value + " ");
Console.ReadLine();
5、Stack栈的使用
Stack:判断栈是否为空,入栈,出栈,读取栈顶,长度
Stack stack = new Stack();
for (int i = 0; i < 10;i++)
stack.Push(i);
while (stack.Count > 0)
{
Console.Write(stack.Pop()+ " ");
}
6、Queue队列的使用
Queue:长度,入队,出队,清空队列,
static void Main(string[] args)
{
Queue queue = new Queue();
for (int i = 0; i < 10;i++)
queue.Enqueue(i);
object[]arr=queue.ToArray();
for (int i = 0; i <arr.Length; i++)
Console.Write( arr[i]+"");
Console.ReadLine();
}
7、Hashtable的使用:每一个元素都由Key与Value构成。依据Key计算存储地址。依据key查找元素值
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add("200001","zhou");
ht.Add("200002","zhang");
ht.Add("200003","liu");
object name = ht["200003"];//依据Key读写value值
foreach(object key in ht.Keys)
{
Console.WriteLine(key+" "+ht[key]);
}
Console.ReadLine();
}
8、强类型集合
1) List使用
static void Main(string[] args)
{
List<string> list = newList<string>();
//声明list集合中元素类型为string
//List<Student> slist = new List<Student>();
// list.Add();
LinkedList<string> linklist = newLinkedList<string>();
linklist.AddFirst("a");
linklist.AddLast("b");
HashSet<int> hs = newHashSet<int>();
Console.ReadLine();
}
本章练习题下载地址:点此下载