数组复习 特殊集合

            数组
            一维数组
            需要数据类型,以及长度
            int [] array =new int[5];
            冒泡排序
                        {
                for (int j = i; j < 4; j++)
                {
                    if (array[i] < array[j + 1])
                    {
                        int zhong = array[i];
                        array[i] = array[j + 1];
                        array[j + 1] = zhong;
                    }
                }
            }
            长度属性
            Console.WriteLine(array.Length);
            最后一位的索引是
            Console.WriteLine(array.Length-1);


            二维数组
            3个一维数组
            每个一维数组中有两个元素
            int[,] array = new int[3, 2];
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    array[i, j] = int.Parse(Console.ReadLine());
                }
            }
                    {
                        {2,3},
                        {4,5},
                      {5,6}
                   };
                for (int i = 0; i < 3; i++)
                {
                  for (int j = 0; j < 2; j++)
                   {
                       Console.Write(array[i,j]+" ");
                   }
                }
                Console.ReadLine();


            三维数组    立体
            3个二维数组
            每个二维数组中有两个一维数组
            每个一维数组中有3个元素
            int [,,] array = new int[3,2,3];


           ArrayList   集合
           跟数组不同的:不用数据类型,可以随便放置
            不需要长度
            ArrayList al = new ArrayList();
            添加数据(元素)
            al.Add(2);
            al.Add(3);
            al.Add(4);
            al.Add(5);
            al.Add(6);
            在3号索引上插入7这个元素
            al.Insert(3, 7);

            移除第一个出现的某个元素
            al.Remove(3);
            移除某个索引位置的元素
            al.RemoveAt(3);

            第一次出现该值的索引号
            Console.WriteLine(al.IndexOf(4));
            最后一次
            Console.WriteLine(al.LastIndexOf(2));

            克隆
            ArrayList al1 = new ArrayList();
            al1 = (ArrayList)al.Clone()   

           清空集合
            al1.Clear();

            排序   升序
            al.Sort();
            想要降序    需要先排成升序,然后翻转集合
            al.Reverse();

            属性    个数
            Console.WriteLine(al.Count);

            二维数组
            输入班级人数,输入每个人的语数英成绩
            求语文的总分
            数学的平均分
            英语的最高分和最低分
            冒泡
            Console.Write("请输入班级人数:");
            int n = int.Parse(Console.ReadLine());
            double sum1= 0;
            double sum2 = 0;
            double zhong = 0;
            double[,] a = new double[n, 3];
            for (int i = 0; i < n; i++)
            {
                Console.Write("请输入第"+(i+1)+"个人的语文成绩:");
                a[i, 0] = double.Parse(Console.ReadLine());
                sum1 +=a[i,0];
                Console.Write("请输入第" + (i + 1) + "个人的数学成绩:");
                a[i, 1] = double.Parse(Console.ReadLine());
                sum2 += a[i, 1];
                Console.Write("请输入第" + (i + 1) + "个人的英语成绩:");
                a[i, 2] = double.Parse(Console.ReadLine());
            }
            for (int i = 0; i < n;i++ )
            {
                for (int j = i; j < n-1;j++ )
                {
                    if (a[i,2]<a[j+1,2])
                     zhong=a[i,2];
                    a[i, 2] = a[j + 1, 2];
                    a[j + 1, 2] = zhong;
                }
            }
            Console.WriteLine("语文总分为"+sum1+"分");
            Console.WriteLine("数学平均分为"+sum2/n+"分");
            Console.WriteLine("英语最高分为"+a[0,2]);
            Console.WriteLine("英语最低分为"+a[n-1,2]);
            Console.ReadLine();


            ArrayList
            输入班级人数,输入每个人的姓名,语数英成绩进入一个集合
            求语文的总分
            数学的平均分
            英语的最高分和最低分的同学的所有信息
            冒泡
            (0姓名、1语文、2数学、3英语的分数)

            Console.Write("请输入班级人数:");
            int n = int.Parse(Console.ReadLine());
            ArrayList al = new ArrayList();
            double yu = 0;
            double shu = 0;
            for (int i = 0; i < n;i++ )
            {
                Console.Write("请输入第"+(i+1)+"个学生的姓名:");
                al.Add( Console.ReadLine());
                Console.Write("请输入第" + (i + 1) + "个学生语文成绩:");
                al.Add(Console.ReadLine());
                yu += double.Parse(al[al.Count - 1].ToString());
                Console.Write("请输入第" + (i + 1) + "个学生的数学成绩:");
                al.Add(Console.ReadLine());
                shu  += double.Parse(al[al.Count - 1].ToString());
                Console.Write("请输入第" + (i + 1) + "个学生的英语成绩:");
                al.Add(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]);
            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();
                       
        }

            初始化    干草堆  stack集合
            先进后出,一个一个的赋值,一个一个的取值
            Stack ss = new Stack();
            添加元素(推送)   push
            ss.Push(1);
            ss.Push(2);
            ss.Push(3);
            ss.Push(4);
            ss.Push(5);
            个数
            Console.WriteLine(ss.Count);
            弹出
            Console.WriteLine(ss.Pop());
            单纯查看,不弹出
            Console.WriteLine(ss.Peek());
            foreach(int aa in ss)
            {
                Console.WriteLine(aa);
            }
            清空集合
            ss.Clear();

                Console.ReadLine();


            队列集合    初始化
            先进先出,一个一个取值、赋值
            Queue que = new Queue();
            添加元素
            que.Enqueue(2);
            que.Enqueue(3);
            que.Enqueue(4);
            que.Enqueue(5);
            que.Enqueue(6);
            移除
            que.Dequeue();
            个数
            Console.WriteLine(que.Count);
            清空集合
            que.Clear();
           

            foreach (int aa in que)
            {
                Console.Write(aa+" ");
            }

            Console.ReadLine();


            哈希表集合
            先进后出,一个一个赋值,但是只能一起取值
            初始化
            Hashtable ht = new Hashtable();
            ht.Add(1,"可口可乐");
            ht.Add(2, "雪碧");
            ht.Add(3, "百事可乐");
            ht.Add(4, "芬达");
            ht.Add(5, "美年达");
            移除(某个key值的位置的元素)
            ht.Remove(3);
            判断是否包含
            Console.WriteLine( ht.Contains(5));
            Console.WriteLine(ht.Count);
            foreach (int aa in ht.Keys)
            {
                Console.WriteLine(aa);
            }
            foreach (string ss in ht.Values)
            {
                Console.WriteLine(ss);
            }
            使用枚举类型来读取(表格样式)
            IDictionaryEnumerator ide = ht.GetEnumerator();
            while(ide.MoveNext())
            {
                Console.WriteLine(ide.Key+" "+ide.Value);
            }
            Console.ReadLine();

原文地址:https://www.cnblogs.com/fuze/p/5721310.html