集合 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案例 ...
随机推荐
- Android的图片缓存ImageCache(转)
为什么要做缓存? 在UI界面加载一张图片时很简单,然而如果需要加载多张较大的图像,事情就会变得更加复杂.在许多情况下(如ListView.GridView或ViewPager等的组件),屏 ...
- visibility和display的异同
都有隐藏节点的作用. visibility:hidden; display:none; (1)visibility 规定了元素是否可见,即使不可见也会占用上面的空间,在这里就是在指它与display的 ...
- json 入门(1)
1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,Java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...
- Android Java执行Shell命令
最新内容建议直接访问原文:http://www.trinea.cn/android/android-java-execute-shell-commands/ 主要介绍Android或Java应用中如何 ...
- cf 106C
题目链接:http://vjudge.net/contest/139376#problem/E 题意看注释就能懂了,求能获得的最大价值. 代码: #include<iostream> #i ...
- psql-06表:约束
默认值 可以理解为建表时没定义的默认值为null,表示未知,//注意和js中null不一样; 建表时设置 create table child(id int, age int default 18); ...
- 3、利用SuperObject 循环处理Json深层次的值
//遍历对象 procedure TForm1.Button5Click(Sender: TObject); var item,jo: ISuperObject; ja,JA_TYPE,JA_MAC: ...
- spring boot 打包成jar 包在发布到服务器上
http://blog.csdn.net/sai739295732/article/details/49444447
- HDU5855 Less Time, More profit(最大权闭合子图)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5855 Description The city planners plan to build ...
- Codeforces 620E New Year Tree(DFS序 + 线段树)
题目大概说给一棵树,树上结点都有颜色(1到60),进行下面两个操作:把某结点为根的子树染成某一颜色.询问某结点为根的子树有多少种颜色. 子树,显然DFS序,把子树结点映射到连续的区间.而注意到颜色60 ...