zoukankan      html  css  js  c++  java
  • 集合 ArrayList 类

    集合的基本信息:

    System.Collections   系统类中的收藏类,定义各种对象(如列表,队列,位数组,哈希表和字典)的集合

    常用的集合为ArrayList类;特殊集合一般会用到Queue队列集合、Stack栈集合哈有Hashtable哈希表集合。

    集合和数组的区别:数组是连续的同一类型数据。集合可以是不连续的多种数据类型。

    ArrayList:

    ArrayList和Array的区别:

    相同点:1.两者都实现了IList、ICollection、IEnumerable接口; 

         2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始。

    不同点:1.ArrayList是集合而Array是数组;

         2.ArrayList是具体类而Array是抽象类;

         3.数组必须在实例化时指定元素的数量,改数量一旦确定就不可以更改了。而ArrayList扩展了这一点,当实例化时可以不指定集合元素数

         4.获取数组的元素时使用Length属性,而获取ArrayList集合的元素数使用Count属性;

         5.数组可以多维,而ArrayList只能是一维。

    ArrayList al = new ArrayList();
                al.Add(5);  //添加元素
                al.Add(7);
                al.Add(6);
                Console.WriteLine(al.Count);//打印al的元素个数
                al.Insert(1, 8);//在索引1的位置插入元素8.
                for (int i = 0; i < 3; i++)
                {
                    Console.WriteLine(al[i]);
                }

      

    ArrayList al = new ArrayList();
                al.Add(5);  //添加元素
                al.Add(7);
                al.Add(6);
                al.Add(7);
                al.Add(6);
                al.Remove(7);//把从索引为0开始的第一个数据为7的剔除
                al.RemoveAt(3);//把索引为3的数据剔除
                for (int i = 0; i < 3; i++)
                {
                    Console.WriteLine(al[i]);
                }

      

    ArrayList al = new ArrayList();
                al.Add(5);  //添加元素
                al.Add(7);
                al.Add(6);
                al.Add(11);
                al.Add(8);
                al.Add(3);
                al.Sort();//排序,升序
                for (int i = 0; i < 6; i++)
                {
                    Console.WriteLine(al[i]);
                }
    ArrayList al = new ArrayList();
                al.Add(5);  //添加元素
                al.Add(7);
                al.Add(6);
                al.Add(11);
                al.Add(8);
                al.Add(3);
                al.Sort();
                al.Reverse();//翻转语句,执行之后变降序
                for (int i = 0; i < 6; i++)
                {
                    Console.WriteLine(al[i]);
                }

      

    手机号抽奖

     1 ArrayList al = new ArrayList();
     2             for (int i = 0; ; i++)
     3             {
     4                 Console.Write("请输入手机号:");
     5                 string a = Console.ReadLine();
     6                 if (a == "完成")
     7                 {
     8                     break;
     9                 }
    10                 al.Add(a);
    11             }
    12             Console.WriteLine("输入完毕,请按回车进行抽奖!");
    13             Console.ReadLine();
    14             Random ran = new Random();
    15             for (int i = 0; i < 30; i++)
    16             {
    17                 int b = ran.Next(0, al.Count);
    18                 Console.Clear();
    19                 Console.Write(al[b]);
    20                 System.Threading.Thread.Sleep(100);
    21             }
    22             //Console.Clear();
    23             //Console.Write("18953370733");  //作弊
    手机号抽奖

    //输入班级人数,输入每人的姓名语数英成绩再打印出来,求语文两个最高分,数学两个最低分,英语平均分

     1  ArrayList al = new ArrayList();
     2             Console.Write("输入班级人数:");
     3             int n = int.Parse(Console.ReadLine());
     4             for (int i = 0; i < n; i++)
     5             {
     6                 Console.Write("请输入第{0}个人的姓名:", i + 1);
     7                 al.Add(Console.ReadLine());
     8                 Console.Write("请输入第{0}个人的语文成绩:", i + 1);
     9                 al.Add(Console.ReadLine());
    10                 Console.Write("请输入第{0}个人的数学成绩:", i + 1);
    11                 al.Add(Console.ReadLine());
    12                 Console.Write("请输入第{0}个人的英语成绩:", i + 1);
    13                 al.Add(Console.ReadLine());
    14 
    15             }
    16             Console.WriteLine("输入完毕");
    17             double sum = 0;
    18             for (int i = 3; i < 4 * n; i += 4)
    19             {
    20                 sum += double.Parse(al[i].ToString());
    21             }
    22             double avg = sum / n;
    23             for (int i = 1; i < 4 * n - 4; i += 4)
    24             {
    25                 for (int j = i + 4; j < 4 * n; j += 4)
    26                 {
    27                     if (double.Parse(al[i].ToString()) < double.Parse(al[j].ToString()))
    28                     {
    29                         Object t1 = al[i];
    30                         al[i] = al[j];
    31                         al[j] = t1;
    32                         Object t2 = al[i - 1];
    33                         al[i - 1] = al[j - 1];
    34                         al[j - 1] = t2;
    35                         Object t3 = al[i + 1];
    36                         al[i + 1] = al[j + 1];
    37                         al[j + 1] = t3;
    38                         Object t4 = al[i + 1];
    39                         al[i + 2] = al[j + 2];
    40                         al[j + 2] = t4;
    41                     }
    42                 }
    43             }
    44             Console.WriteLine("语文两个最高分为{0}的{1}分,{2}的{3}分", al[0], al[1], al[4], al[5]);
    45             for (int i = 2; i < 4 * n - 4; i += 4)
    46             {
    47                 for (int j = i + 4; j < 4 * n; j += 4)
    48                 {
    49                     if (double.Parse(al[i].ToString()) > double.Parse(al[j].ToString()))
    50                     {
    51                         Object t1 = al[i];
    52                         al[i] = al[j];
    53                         al[j] = t1;
    54                         Object t2 = al[i - 1];
    55                         al[i - 1] = al[j - 1];
    56                         al[j - 1] = t2;
    57                         Object t3 = al[i + 1];
    58                         al[i + 1] = al[j + 1];
    59                         al[j + 1] = t3;
    60                         Object t4 = al[i - 2];
    61                         al[i - 2] = al[j - 2];
    62                         al[j - 2] = t4;
    63                     }
    64                 }
    65             }
    66             Console.WriteLine("数学两个最低分为{0}的{1}分,{2}的{3}分", al[0], al[2], al[4], al[6]);
    67             Console.WriteLine("英语平均分为{0}", avg);
    View Code
  • 相关阅读:
    题解【luogu1073 最优贸易】
    题解【luogu4145 上帝造题的七分钟2(花神游历各国)】
    题解【bzoj2427 [HAOI2010]软件安装】
    以后会经常用cnblogs啦!
    题解【luogu4168 [Violet]蒲公英】
    题解【bzoj1010 [HNOI2008]玩具装箱TOY】
    题解【bzoj4653 [NOI2016] 区间】
    animation渐进实现点点点等待效果
    纯css loading动效
    文字和背景渐变动效
  • 原文地址:https://www.cnblogs.com/maxin991025-/p/5966511.html
Copyright © 2011-2022 走看看