看C#视频的时候,1105,1106里有讲到ArrayList List Dictionary Hashtable四者的知识,
因为总是闹不太清它们四位少侠之间的恩怨关系,所以就总结出来啦。个人知识理解可能有失偏颇,
有误之处,各路朋友尽情指正!
ArrayList
功能定义:
array是数组的意思。Arraylist是动态数组,属于非泛型集合,可以灵活设置数组。动态的增加和减少元素。
特点:
1.可以放各种类型的数据,
2.并且可以不确定数组个数,add可以无限的添加。
❤因为Arraylist是非泛型集合,所以需要额外引入命名空间 using system.collection
举个栗子1:arraylist简单应用
int[] nums = new int[] { 1, 2, 3, 4, 5 };
ArrayList arraylist = new ArrayList();//创建新的ArrayList
arraylist.Add(10);//各种类型的数据
arraylist.Add(20);
arraylist.Add("王璐");
arraylist.Add('女');
arraylist.Add(true);
arraylist.Add(3.15m);
arraylist.Add(78.9);
arraylist.Add(nums);
arraylist.Add("雾霾快点消失吧");
for (int i = 0; i < arraylist.Count; i++)
{
if (arraylist[i] is int[])
{
int[] numbers = (int[])arraylist[i];
for (int j = 0; j < numbers.Length; j++)
{
Console.WriteLine(numbers[j]);
}
}
else
{
Console.WriteLine(arraylist[i]);
}
}
Console.ReadKey();
Hashtable
功能定义:
hashtable的中文名字叫哈希表,是根据关键码值(Key value)而直接进行访问的数据结构。
它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
特点:
1.添加 add (两个值)键值对的形式。 key---键 value ---值
2.无序性,输入的顺序,不一定是输出的顺序。
key找到了,value也就找到了,所以,key不能相同。
❤因为Hashtable是非泛型集合,所以需要额外引入命名空间 using system.collection
举个栗子2:hashtable简单应用
<span style="font-size:18px;"> Hashtable ht =new Hashtable ();
ht .Add ("老崔","123");//键值对的形式存值,key----键 value-----值
ht.Add("小崔", 123);
ht .Add ("老王","老李");
foreach (object str in ht .Keys )
{
Console .WriteLine ("key{0},--------value{1}",str ,ht [str]);
}
Console .WriteLine ("添加成功了");
Console .ReadKey ();
</span>
运行结果:
List
功能定义:
泛型集合,在一次操作中,从一个数组内提取多个值,同时为多个变量赋值。
特点:
1.list加 <>的形式,尖括号里放的是数据类型。
List明确了类型 如: List<int>list=newList<int>(); List<string>list=new List<string>();
2.命名空间里已有usingSystem.Collections.Generic;无需再在命名空间里进行引用。
举个栗子3:
在list里随机添加10个不重复的数,求最大值,最小值,和,平均值
<span style="font-size:18px;"> List <int >list=new List <int >();//实例化一个新的list
Random r = new Random();
int num = 0;
while (list.Count != 10) //10个随机数设定
{
num = r.Next(1, 100);
if(!list.Contains(num))//list不包含此数,就添加进来
{
list.Add(num);
}
}
Console.WriteLine("最大值:{0}",list.Max());
Console.WriteLine("最小值:{0}",list.Min());
Console.WriteLine("和为{0}",list.Sum());
Console.WriteLine("平均值为:{0}",list.Average());
Console.ReadKey();</span>
Dictionary
功能定义:
泛型集合,可以看做数组。基于键值的元素查找,用于更好的处理关联数据
特点:
1.<T key,Y vaule>key value键值对类型。
2.命名空间里已有usingSystem.Collections.Generic;无需再在命名空间里进行引用。
举个栗子4:字典简单应用
<span style="font-size:18px;">Dictionary<string, string> dic = newDictionary<string, string>();//尖括号的格式,key,value的对应形式
dic.Add("璐璐", "冰淇淋");
dic.Add ("老崔","蛋挞");
dic.Add ("王璐","蛋糕");
dic.Add ("苏","鸡翅");
foreach(string item in dic.Keys)//遍历字典
{
Console.WriteLine("key-----:{0},value---:{1}", item,dic[item]);
}
Console.ReadKey();</span>
运行结果:
用一张图总结
以上四种都属数组集合,Arraylist和Hashtable都是非泛型集合门派,List和Dictionary
都是泛型集合门派。我把一些异同点整合,放进了一张图里,大家可以结合下图来和上面的知识
来理解这四位集合少侠~
个人知识理解可能有失偏颇,有误之处,各路朋友尽情指正!