概述
接下来总结以下四种最常用的集合,听小杨老师说这块非常重要,所以听的还是挺认真的。
ArrayList
ArrayList类似于数组,有人也称它为数组列表。ArrayList可以动态维护,而数组的容量是固定的。
给集合添加数据,可以用Add()这个方法,添加的内容也可以无限添加。刚开始需要导入以下命名空间: using System.Collections;
1.显示10以内的奇数:
ArrayList al = new ArrayList();
for(int i= 1;i<20;i+=2)
{
al.Add(i);
}
for(int i=0;i<al.Count;i++)
{
Console.WriteLine(al[i]);
}
Console.ReadKey();
2.往集合中添加数据有三种方式:
(1)通过构造函数可以添加一个数组
(2)通过Add()方法可以添加数组,--------但是算成一个元素,
(3)通过AddRange()也可以添加数组,
3.方法:
方法:
//arrayList.Clear();//清空了
//arrayList.Contains(11);//判断这个集合中是否包含这个元素
//int num = arrayList.Count;//集合中元素的个数
//int[] nums = { 1, 2, 3 };
//arrayList.InsertRange(4, nums);//往某个索引位置插入一个数组
//arrayList.Remove(1);
//arrayList.RemoveAt(1);//移除索引对应的值
//arrayList.RemoveRange(3, 100);//从指定索引处开始移除,移除多少个,如果超出索引报异常
//ArrayList arrayList = new ArrayList();
//for(int i=0;i<100;i++)
//{
// arrayList.Add(i);
//}
//arrayList.Reverse();//反转
/*arrayList.Sort();*///排序
//for (int i = 0; i < arrayList.Count; i++)
//{
// Console.WriteLine(arrayList[i]);
//}
//Console.ReadKey();
4.集合可以看成数组。
数组没有的,集合有。
可以将集合看作“长度可变的,具有很多方法的数组”。
5.求集合元素总和求平均值:
ArrayList arrayList = new ArrayList();
int sum = 0;
for (int i = 1; i <= 100;i++)
{
arrayList.Add(i);
}
for(int i=0;i<arrayList.Count;i++)
{
if (arrayList[i] is int)
{
sum += (int)arrayList[i];
}
}
Console.WriteLine(sum);
double avg = sum * 1.0 / arrayList.Count;
Console.WriteLine(avg);
Console.ReadKey();
6.随机的往集合中添加数据,添加10个,不能重复,再求和,求平均值:
ArrayList arr = new ArrayList();
Random r = new Random();
while (arr.Count!=10)
{
int num = r.Next(1, 100);
if (!arr.Contains(num))
{
arr.Add(num);
}
}
int sum = 0;
for (int i = 0; i < arr.Count; i++)
{
if (arr[i] is int) //能否转化为int类型
{
sum += (int)arr[i];
}
Console.WriteLine(arr[i]);
}
Console.WriteLine(sum);
Console.WriteLine(sum / arr.Count);
Console.ReadKey();
哈希表
C# /提供了一种称为HashTable的数据结构,通常称为哈希表。
Hashtable ht = new Hashtable();
//哈希表以键值对的形式存值 key ----键 value---值
//哈希表是无序的
ht.Add("老苏", "001");
ht.Add("小马","002");
ht.Add("003", "老牛");
ht.Add("小赵", "老马");//键值不能重复
foreach(object str in ht.Keys)//str代表的是单个的key
{
Console.WriteLine("key{0},-----value{1}",str,ht[str]);
}
Console.WriteLine("添加成功了");
Console.ReadKey();
把keys换成values输出的是值:
Hashtable ht = new Hashtable();
//哈希表以键值对的形式存值 key ----键 value---值
//哈希表是无序的
ht.Add("老苏", "001");
ht.Add("小马","002");
ht.Add("003", "老牛");
ht.Add("小赵", "老马");//键值不能重复
ht.Remove(1003);
foreach(object str in ht.Values)//str代表的是单个的key,,在不知道的情况下用var,然后进行调试
{
Console.WriteLine(str);
}
Console.WriteLine("添加成功了");
Console.ReadKey();
泛型集合: List
通过泛型集合可以最大限度的重用代码、保护类型的安全及提高性能.
随机的往这个List集合中添加是个数据,求和,求最大值,求最小值,求平均值:
List<int> list = new List<int>();
Random r = new Random();
int num = 0;
while (list.Count!=10)
{
num =r.Next(1, 100);
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();
泛型集合:Dictionary
它具有泛型的全部特性,编译时检查类型约束,获取元素时无需类型转换,并且它存储数据的方式和HashTable类似。
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("老苏", "凤姐");
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()