集合 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

 

转载于:https://www.cnblogs.com/maxin991025-/p/5966511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值