一、ArrayList类?
ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看作扩充了功能的数组,但是它并不等同于数组。
与数组相比,ArrayList类提供以下功能。
1.1数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。
1.2ArrayList提供添加,删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的值。
1.3ArrayList提供将只读和固定大小包装返回到集合的方法,而数组不提供。
1.4ArrayList只能是一维形式,而数组可以是多维的
声明ArrayList对象:
ArrayList arrayList = new ArrayList();
ArrayList常用方法:
二、Hashtable(哈希表)?
HashTable通常称为哈希表,它表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。它的每一个元素都是一个存储在DictionaryEntry对象中的键/值对。键不能为空引用,但值可以。
声明HashTable对象:
Hashtable hashtable = new Hashtable();
HashTable常用方法:
三、SortedList(排序列表)?
SortedList类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。
排序列表是数组和哈希表的结合。它包含一个可使用键或索引访问的各项的列表。如果使用索引访问各项,则它是一个ArrayList,如果使用键访问各项,则它是一个哈希表。集合中的各项重视按键值排序。
声明SortedList对象:
SortedList sl= new SortedList();
SortedList常用方法:
四、堆栈(Stack)?
堆栈代表一个后进先出的对象集合。需要对各项进行后进先出的访问时,则使用堆栈。在列表中添加一项,则称为推入元素,移除一项时,称为弹出元素。
声明Stack对象:
Stack st= new Stack();
Stack常用方法:
五、队列(Queue)?
队列(Queue)代表了一个先进先出的对象集合。对各项进行先进先出的访问时,则使用队列。添加一项则称为入队。移除一项时则称为出队。
声明Queue对象:
Queue q= new Queue();
Queue常用方法:
六、代码:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _06
{
class Program
{
static void Main(string[] args)
{
#region ArrayLiat
//集合 就是一个动态的数组 动态 根据你插入的信息的个数来决定集合的个数(长度)
//ArrayList arraylist = new ArrayList();
//1.添加
//Add 返回的结果应该是成功 或者 失败
//实际返回的结果是当前插入进去集合中的下标位置
//Console.WriteLine(arraylist.Add("A"));
//arraylist.Add(1);
//arraylist.Add('c');
//Console.WriteLine(arraylist.Add(true));
//个数(长度)
//Console.WriteLine(arraylist.Count);
//判断当前的元素是否在集合中
//Console.WriteLine(arraylist.Contains(2));
//判断当前的元素在集合中的位置(下标) 如果元素不在集合中那么默认返回的下标数是 -1
//Console.WriteLine(arraylist.IndexOf(false));
//插入 能够指定插入的位置
//arraylist.Insert(0,"张三");
//如何获取单个的值?[]
//Console.WriteLine(arraylist[0]);
//循环 for foreach
//for (int i = 0; i < arraylist.Count; i++)
//{
// Console.WriteLine(arraylist[i]);
//}
//Console.WriteLine("..........................");
//Console.WriteLine("delete.....................");
//删除一个 清空当前的某一个元素的值而已 但是集合的数量不变
//for (int i = 0; i < arraylist.Count; i++)
//{
// if (arraylist[i].Equals(true))
// {
// arraylist[i] = null;
// break;
// }
//}
//Console.WriteLine(arraylist.Count);
//foreach (object o in arraylist)
//{
// Console.WriteLine(o);
//}
//排序
//arraylist.Sort();
//删除单个元素 并且改变集合数量
//arraylist.Remove(null);
//Console.WriteLine(arraylist.Count);
//删除全部 清空
//arraylist.Clear();
//Console.WriteLine(arraylist.Count);
//把一个集合合并到另外一个集合中 是从最后一个位置开始的
//ArrayList a1 = new ArrayList();
//a1.Add(1);
//a1.Add(2);
//a1.Add(3);
//a1.Add(4);
//ArrayList a2 = new ArrayList();
//a2.Add(5);
//a2.Add(6);
//a2.Add(7);
//Console.WriteLine("合并前"+a1.Count);
将a1和a2 合并为一个集合
//a1.AddRange(a2);
//Console.WriteLine("合并后" + a1.Count);
//foreach (object o in a1)
//{
// Console.WriteLine(o);
//}
//插入
//ArrayList a1 = new ArrayList();
//a1.Add(1);
//a1.Add(2);
//a1.Add(3);
//a1.Add(4);
//ArrayList a2 = new ArrayList();
//a2.Add(5);
//a2.Add(6);
//a2.Add(7);
//a1.InsertRange(0,a2);
//for (int i = 0; i < a2.Count; i++)
//{
// a1.Add(a2[i]);
//}
//foreach (object o in a2)
//{
// a1.Add(o);
//}
//foreach (object o in a1)
//{
// Console.WriteLine(o);
//}
//Console.ReadKey();
#endregion
#region Hashtable 键值对 键 不能够重名 如果重名就会报错
//Hashtable ht = new Hashtable();
//ht.Add("ZH","中国");
//ht.Add("EN","英国");
//ht.Add("UA","美国");
//ht.Add("HK","香港");
//返回的是当前表里面的所有的keys
//foreach (object o in ht.Keys)
//{
// Console.WriteLine(o);
//}
//返回的是当前表里面的所有的values
//foreach (object o in ht.Values)
//{
// Console.WriteLine(o);
//}
//如何得到一个对象
//Console.WriteLine(ht["HK"]);
//if (ht.ContainsKey("HK"))
//{
// ht.Add("AM","澳门");
//}
//输出整张表的内容
//foreach (object k in ht.Keys)
//{
// Console.WriteLine("{0}..................{1}", k, ht[k]);
//}
//Console.WriteLine("Remove............................");
//ht.Remove("AM");
//输出整张表的内容
//foreach (object k in ht.Keys)
//{
// Console.WriteLine("{0}..................{1}", k, ht[k]);
//}
//Console.ReadKey();
#endregion
#region SortedList 有序列表 ArrayLiat和Hashtable的结合体
//SortedList sl = new SortedList();
//sl.Add("ZH", "中国");
//sl.Add("EN", "英国");
//sl.Add("UA", "美国");
//sl.Add("HK", "香港");
//sl.Remove("HK");
//如果用下标进行输出 ArrayLiat
//for (int i = 0; i < sl.Count; i++)
//{
// //sl.GetKey(i) 根据下标获取key
// //然后根据key来获取value
// Console.WriteLine(sl[sl.GetKey(i)]);
//}
//Console.WriteLine("..............");
//foreach (object o in sl.GetValueList())
//{
// Console.WriteLine(o);
//}
//Console.WriteLine("..............");
//foreach (object o in sl.GetKeyList())
//{
// Console.WriteLine(o);
//}
//for (int i = 0; i < sl.Count; i++)
//{
// Console.WriteLine(sl.GetKey(i));
//}
//sl.Clear();
//Console.WriteLine(sl.Count);
//Console.ReadKey();
#endregion
#region Stack 堆栈 后进先出
//Stack st = new Stack();
//st.Push(1);
//st.Push(2);
//st.Push(3);
//st.Push(4);
//循环输出
//foreach (object o in st)
//{
// Console.WriteLine(o);
//}
//找到栈顶元素
//Console.WriteLine(st.Peek());
//移除
//st.Clear();
//Console.ReadKey();
#endregion
#region Queue 队列 先进先出
//Queue q = new Queue();
//q.Enqueue(1);
//q.Enqueue(2);
//q.Enqueue(3);
//q.GetEnumerator();
//foreach (object o in q)
//{
// Console.WriteLine(o);
//}
//Console.ReadKey();
#endregion
#region 集合重要的方法
//Add 添加元素
//Clear 清空集合所有的元素
//remove 移除指定的元素 并且会影响集合的数量
//insert 插入 指定位置插入元素
//Contains 判断当前的元素是否存在于集合中
//indexOf 得到元素的下标位置 -1 则代表未找到元素 =当前的元素不存在于集合中
//IEnumerable 枚举器 针对底层实现
#endregion
}
}
}