集合 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案例 ...
随机推荐
- BuildFilePath 及打开文件对话框
也许以后就主要在这里发SOUI的介绍了. 贴一段文件相关的helper, 测试一下贴代码是不是方便. /** * Copyright (C) 2014-2050 * All rights reserv ...
- socket编程学习
socket: 也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求. 常用的套接字API函数: 1.socket(): 函数原型为:int socket(int domain, int ...
- -webkit-text-size-adjust
ios使用-webkit-text-size-adjust禁止调整字体大小 body{-webkit-text-size-adjust: 100%!important;} android使用以下代码, ...
- SQLServer 维护脚本分享(09)相关文件读取
/********************[读取跟踪文件(trc)]********************/ --查看事件类型描述 SELECT tc.name,te.trace_event_id, ...
- JMeter正则表达式-学习(3)
同时关联多个值的方法: { : ", : "results": : [ : : { : : : "total_earnings":"&quo ...
- Linux中查看jdk版本
linux查看java jdk安装路径和设置环境变量 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis jav ...
- PS切图的几种方式
方法一 点击图层右键-->导出为 导出需要的格式与大小 方法二 选择多个图层右键--->快速导出为PNG(导出的名字就是图层名字) 方法三
- Android如何缩减APK包大小
代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小. native c ...
- [工作中的设计模式]单例模式singleton
一.模式解析: 单例模式是最简单和最常用的设计模式,面试的时候,不管新毕业的学生还是已经工作多年的筒子,对单例模式基本都能聊上两句.单例模式主要体现在如下方面: 1.类的构造函数私有化,保证外部不能直 ...
- 在 Chrome 中调试 Android 浏览器
最近需要使用 Chrome Developer Tools 调试 Android 浏览器,但是官方指南并不是很好使,经过一番折腾,终于调试成功了,在此把经验分享给需要的朋友. Chrome Devel ...