集合的基本信息:

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]);
}

  

手机号抽奖

 ArrayList al = new ArrayList();
for (int i = ; ; i++)
{
Console.Write("请输入手机号:");
string a = Console.ReadLine();
if (a == "完成")
{
break;
}
al.Add(a);
}
Console.WriteLine("输入完毕,请按回车进行抽奖!");
Console.ReadLine();
Random ran = new Random();
for (int i = ; i < ; i++)
{
int b = ran.Next(, al.Count);
Console.Clear();
Console.Write(al[b]);
System.Threading.Thread.Sleep();
}
//Console.Clear();
//Console.Write("18953370733"); //作弊

手机号抽奖

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

  ArrayList al = new ArrayList();
Console.Write("输入班级人数:");
int n = int.Parse(Console.ReadLine());
for (int i = ; i < n; i++)
{
Console.Write("请输入第{0}个人的姓名:", i + );
al.Add(Console.ReadLine());
Console.Write("请输入第{0}个人的语文成绩:", i + );
al.Add(Console.ReadLine());
Console.Write("请输入第{0}个人的数学成绩:", i + );
al.Add(Console.ReadLine());
Console.Write("请输入第{0}个人的英语成绩:", i + );
al.Add(Console.ReadLine()); }
Console.WriteLine("输入完毕");
double sum = ;
for (int i = ; i < * n; i += )
{
sum += double.Parse(al[i].ToString());
}
double avg = sum / n;
for (int i = ; i < * n - ; i += )
{
for (int j = i + ; j < * n; j += )
{
if (double.Parse(al[i].ToString()) < double.Parse(al[j].ToString()))
{
Object t1 = al[i];
al[i] = al[j];
al[j] = t1;
Object t2 = al[i - ];
al[i - ] = al[j - ];
al[j - ] = t2;
Object t3 = al[i + ];
al[i + ] = al[j + ];
al[j + ] = t3;
Object t4 = al[i + ];
al[i + ] = al[j + ];
al[j + ] = t4;
}
}
}
Console.WriteLine("语文两个最高分为{0}的{1}分,{2}的{3}分", al[], al[], al[], al[]);
for (int i = ; i < * n - ; i += )
{
for (int j = i + ; j < * n; j += )
{
if (double.Parse(al[i].ToString()) > double.Parse(al[j].ToString()))
{
Object t1 = al[i];
al[i] = al[j];
al[j] = t1;
Object t2 = al[i - ];
al[i - ] = al[j - ];
al[j - ] = t2;
Object t3 = al[i + ];
al[i + ] = al[j + ];
al[j + ] = t3;
Object t4 = al[i - ];
al[i - ] = al[j - ];
al[j - ] = t4;
}
}
}
Console.WriteLine("数学两个最低分为{0}的{1}分,{2}的{3}分", al[], al[], al[], al[]);
Console.WriteLine("英语平均分为{0}", avg);

集合 ArrayList 类的更多相关文章

  1. 反射方式,获取出集合ArrayList类的class文件对象

    /* * 定义集合类,泛型String * 要求向集合中添加Integer类型 * * 反射方式,获取出集合ArrayList类的class文件对象 * 通过class文件对象,调用add方法 * * ...

  2. 每日一问(常用的集合接口和类有哪些【二】)—最常用的集合ArrayList类

    本人在曾经的数年编程生涯中,使用的最多的就是ArrayList类了,原因也非常简单.ArrayList类可以是最直接符合集合这一概念的类了,当然这种说法只是我的个人之见.ArrayList可以说是一个 ...

  3. C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)

    1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在ArrayList中主要使用Add.Remove.RemoveAt.Insert四个方法对栈进行操作.Add方法 ...

  4. java基础之集合框架--使用ArrayList类动态 存储数据

    一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...

  5. 转:C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、Sort)

    C#常用的集合类型(ArrayList类.Stack类.Queue类.Hashtable类.Sort) .ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在Array ...

  6. Java之ArrayList类(集合)

    集合的由来 我们想存储多个数据,选择的容器可以是数组.而数组的长度是固定的,无法适应数据变化的需求.为了解决这个问题,Java提供了另一个容器 java.util.ArrayList 集合类,让我们可 ...

  7. Java集合---Array类源码解析

    Java集合---Array类源码解析              ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...

  8. Java集合---ArrayList的实现原理

    目录: 一. ArrayList概述 二. ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除                 6) 调整数组容量 ...

  9. Java API —— ArrayList类 & Vector类 & LinkList类

    1.ArrayList类     1)ArrayList类概述         · 底层数据结构是数组,查询快,增删慢         · 线程不安全,效率高     2)ArrayList案例   ...

随机推荐

  1. BuildFilePath 及打开文件对话框

    也许以后就主要在这里发SOUI的介绍了. 贴一段文件相关的helper, 测试一下贴代码是不是方便. /** * Copyright (C) 2014-2050 * All rights reserv ...

  2. socket编程学习

    socket: 也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求. 常用的套接字API函数: 1.socket(): 函数原型为:int socket(int domain, int ...

  3. -webkit-text-size-adjust

    ios使用-webkit-text-size-adjust禁止调整字体大小 body{-webkit-text-size-adjust: 100%!important;} android使用以下代码, ...

  4. SQLServer 维护脚本分享(09)相关文件读取

    /********************[读取跟踪文件(trc)]********************/ --查看事件类型描述 SELECT tc.name,te.trace_event_id, ...

  5. JMeter正则表达式-学习(3)

    同时关联多个值的方法: { : ", : "results": : [ : : { : : : "total_earnings":"&quo ...

  6. Linux中查看jdk版本

    linux查看java jdk安装路径和设置环境变量 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis jav ...

  7. PS切图的几种方式

    方法一 点击图层右键-->导出为 导出需要的格式与大小 方法二 选择多个图层右键--->快速导出为PNG(导出的名字就是图层名字) 方法三

  8. Android如何缩减APK包大小

    代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小. native c ...

  9. [工作中的设计模式]单例模式singleton

    一.模式解析: 单例模式是最简单和最常用的设计模式,面试的时候,不管新毕业的学生还是已经工作多年的筒子,对单例模式基本都能聊上两句.单例模式主要体现在如下方面: 1.类的构造函数私有化,保证外部不能直 ...

  10. 在 Chrome 中调试 Android 浏览器

    最近需要使用 Chrome Developer Tools 调试 Android 浏览器,但是官方指南并不是很好使,经过一番折腾,终于调试成功了,在此把经验分享给需要的朋友. Chrome Devel ...