ArrayList
ArrayList myarry = new ArrayList();
myarry.Add(1);//添加元素
myarry.Add(2);//索引也是從零開始
myarry.Add(3);
myarry.Add(4);
myarry.Add(5);
myarry.Insert(3,"7");
插入在索引號為3的位置一個為7的值
後面的索引依次向後+1
myarry.Remove(4);
移除數據為4的元素
括號裡面是想要移除的數據
myarry.RemoveAt(4);
移除索引號為4的數據
int aa = myarry.Count;
統計集合內元素的個數
Console.WriteLine("總共有"+aa+"個元素");
myarry.Clear();//將集合清空
bool b = myarry.Contains(3);
判斷是否有括號內的數據,返回的是bool值(True或者False)
int bb = myarry.IndexOf(2);
int cc = myarry.LastIndexOf(2);
Console.WriteLine(bb);
myarry.Sort();
自動進行排序,升序
若需要降序排列,在自動排列之後,對整個集合進行反轉指令
myarry.Reverse();
ArrayList ar = new ArrayList();
ar = (ArrayList)myarry.Clone();
集合的克隆
foreach (object a in myarry)
{//從頭到尾打印出集合中的所有元素
Console.WriteLine(a);
}
Console.ReadLine();
集合中有元素是以object這個類型存在
object類是所有類的基類
小的數據類型不可以接收object類型的數據
object類型的變量可以接收任何類型的變量
string aaa = "2";
object bbb = aaa;
aaa不可以接收bbb的值
Console.WriteLine(myarry[3]);
Console.ReadLine();
Stack 集合
Stack aa = new Stack();
aa.Push(1);//向stack集合中添加數據
aa.Push(2);
aa.Push(3);
aa.Push(4);
aa.Push(5);
注意:Stack是沒有索引的
Console.WriteLine(aa[0]);//是錯誤的
Console.WriteLine(aa.Peek());//僅用來查看最後一位,不踢出
aa.Pop();//彈出,踢出最後一個進入集合的數據
Console.WriteLine( aa.Pop());
int aaa = aa.Count;//統計個數
aa.Clear();//清空集合
foreach (object a in aa)
{
Console.WriteLine(a);
}
Console.ReadLine();
Queue 隊列集合
先進的先出,後進的後出
沒有索引
Queue qq = new Queue();
qq.Enqueue(1);//給集合中添加元素
qq.Enqueue(2);
qq.Enqueue(3);
qq.Enqueue(4);
qq.Enqueue(5);
qq.Dequeue();//將排在最前面的剔除
int c =qq.Count;//統計個數
qq.Peek();//只查看,不踢出
qq.Clear();//清空集合
bool bb =qq.Contains(3);//判斷是否包含這個元素
foreach (object b in qq)
{
Console.WriteLine(b);
}
Console.ReadLine();
foreach 遍歷集合
foreach (object aa in name)
{
Console.Write(aa+"\t");
}
Console.ReadLine();
object a;
int b = 4;
a = b;
double c = 3.14;
a = c;
bool d = true;
a = d;
string e = "Hello";
a = e;
DateTime dt = DateTime.Now;
a = dt;
課後題
輸入班級人數,輸入每個人的姓名、語數英成績進入集合
求語文的總分,數學的平均分,
英語的最高分的人的姓名及所有科目的分數(冒泡排序)
0 姓名 4 8 12
1 語文成績5 9 13
2 數學成績6 10 14
3 英語成績7 11 15
Console.Write("請輸入班級人數:");
int n = int.Parse(Console.ReadLine());
double yu = 0;
double shu = 0;
ArrayList al = new ArrayList();
for (int i = 0; i < n; i++)
{
Console.Write("請輸入第{0}個人的姓名:",i+1);
al.Add(Console.ReadLine());
Console.Write("請輸入第{0}個人的語文成績:",i+1);
al.Add(double.Parse(Console.ReadLine()));
yu += double.Parse(al[al.Count - 1].ToString());
Console.Write("請輸入第{0}個人的數學成績:", i + 1);
al.Add(double.Parse(Console.ReadLine()));
shu += double.Parse(al[al.Count - 1].ToString());
Console.Write("請輸入第{0}個人的英語成績:", i + 1);
al.Add(double.Parse(Console.ReadLine()));
}
Console.WriteLine("所有信息輸入完畢,請按回車鍵繼續!");
Console.ReadLine();
Console.WriteLine("語文的總分是:"+yu);
Console.WriteLine("數學的平均分是:"+(shu/n));
for (int i = 3; i < 4*n-1; i+=4)
{
for (int j = i; j < 4 * n - 4; j += 4)
{
if (double.Parse(al[i].ToString()) < double.Parse(al[j + 4].ToString()))
{
換姓名
object zhong = al[i - 3];
al[i - 3] = al[j + 1];
al[j + 1] = zhong;
換語文
zhong = al[i - 2];
al[i - 2] = al[j + 2];
al[j + 2] = zhong;
換數學
zhong = al[i - 1];
al[i - 1] = al[j + 3];
al[j + 3] = zhong;
換英語
zhong = al[i];
al[i] = al[j + 4];
al[j + 4] = zhong;
}
}
}
Console.WriteLine("英語最高分的學生是{0},英語分數是{1},語文分數是{2},數學分數{3}",al[0],al[3],al[1],al[2]);
Console.ReadLine();