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

手机号抽奖
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 类的更多相关文章
- 反射方式,获取出集合ArrayList类的class文件对象
/* * 定义集合类,泛型String * 要求向集合中添加Integer类型 * * 反射方式,获取出集合ArrayList类的class文件对象 * 通过class文件对象,调用add方法 * * ...
- 每日一问(常用的集合接口和类有哪些【二】)—最常用的集合ArrayList类
本人在曾经的数年编程生涯中,使用的最多的就是ArrayList类了,原因也非常简单.ArrayList类可以是最直接符合集合这一概念的类了,当然这种说法只是我的个人之见.ArrayList可以说是一个 ...
- C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)
1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在ArrayList中主要使用Add.Remove.RemoveAt.Insert四个方法对栈进行操作.Add方法 ...
- java基础之集合框架--使用ArrayList类动态 存储数据
一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...
- 转:C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、Sort)
C#常用的集合类型(ArrayList类.Stack类.Queue类.Hashtable类.Sort) .ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在Array ...
- Java之ArrayList类(集合)
集合的由来 我们想存储多个数据,选择的容器可以是数组.而数组的长度是固定的,无法适应数据变化的需求.为了解决这个问题,Java提供了另一个容器 java.util.ArrayList 集合类,让我们可 ...
- Java集合---Array类源码解析
Java集合---Array类源码解析 ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...
- Java集合---ArrayList的实现原理
目录: 一. ArrayList概述 二. ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除 6) 调整数组容量 ...
- Java API —— ArrayList类 & Vector类 & LinkList类
1.ArrayList类 1)ArrayList类概述 · 底层数据结构是数组,查询快,增删慢 · 线程不安全,效率高 2)ArrayList案例 ...
随机推荐
- poj 1816 (Trie + dfs)
题目链接:http://poj.org/problem?id=1816 思路:建好一颗Trie树,由于给定的模式串可能会重复,在原来定义的结构体中需要增加一个vector用来记录那些以该节点为结尾的字 ...
- uri,url.urn
uri:Web上可用的每种资源 - HTML文档.图像.视频片段.程序等 - 由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI" ...
- android之SharedPreferes
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- 学习linux内核时常碰到的汇编指令(1)
转载:http://blog.sina.com.cn/s/blog_4be6adec01007xvg.html 80X86 汇编指令符号大全 +.-.*./∶算术运算符. &∶宏处理操作符. ...
- js循环添加事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Jmeter之录制脚本(二)
上一节已经已经介绍过Jmeter的安装,对于web测试的话,经常会用到一些脚本去执行某些功能,也就是所谓的半自动化测试, 对于不懂代码的童鞋来说,脚本是一个很头疼的概念,badboy的录制是一个对于刚 ...
- MySQL导入sql脚本 导出数据库
导出数据库 不能停止服务 cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) mysqldump -u用户名 -p 数据库名 > 导出的文件名 ...
- TweenMax_API介绍
构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓动的对象 duration:Number ...
- CentOS下vm虚拟机桥接联网
CentOS下vm虚拟机桥接联网 vm虚拟机下的桥接联网相当于虚拟机是一个独立的主机,直接与外网相连,这是比较好的连接方式,这样外网的机子就可以直接访问到虚拟机了. 首先虚拟机的联网方式设置为 ...
- SQL 最基本使用
--创建表 CREATE TABLE TreeData (id INT IDENTITY(1,1) PRIMARY KEY , pid INT ) --为表添加列 ALTER TABLE treeda ...