一、ArrayList集合 集合内可以放不同类型的元素

另:object类型为所有数据类型的基类

添加元素:.add();

清空集合:al.clear();

克隆集合:.clone();

判断是否包含某个元素:.contains();

获取第一次出现该元素的索引号:.indexof();

获取最后一次出现该元素的索引号:lastindexof();

移除第一个匹配元素:.Remove();

移除某个索引位置上的元素:.RemoveAt();

排序 升序:.sort();

翻转集合:.Reverse();

在有不同数据类型的时候需要遍历集合:用object foreach(object aa in ai )

暂停程序:System.Threading.Thread.Sleep(300); 括号内为毫秒

练习:

1.输入多个号码放到集合中 进行三秒钟的滚动抽奖

ArrayList al = new ArrayList();
for (; ; )
{
Console.Write("请输入手机号码(如果要终止,请输入“完成”):");
string a = Console.ReadLine();
if (a == "完成")
{
break;
}
al.Add(a);
}
Console.WriteLine("输入完毕,按回车键开始抽奖。");
Console.ReadLine();
Console.Clear();
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();
}

2.输入班级人数 姓名 语数英成绩 输出语文最高分 数学最低分 是谁考的 以及英语平均分

ArrayList al = new ArrayList();
Console.Write("请输入班级人数:");
int a = int.Parse(Console.ReadLine());
for (int i = ; i < a; 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());
}
for (int i = ; i < * a - ; i += )
{
for (int j = i + ; j < * a; j += )
{
if (double.Parse(al[i + ].ToString()) < double.Parse(al[j + ].ToString()))
{
object zhong = al[i + ];
al[i + ] = al[j + ];
al[j + ] = zhong;
zhong = al[i];
al[i] = al[j];
al[j] = zhong;
zhong = al[i + ];
al[i + ] = al[j + ];
al[j + ] = zhong;
zhong = al[i + ];
al[i + ] = al[j + ];
al[j + ] = zhong;
}
}
}
Console.Clear();
Console.WriteLine("语文成绩最高分是{0},是{1}考的。", al[], al[]);
for (int i = ; i < * a - ; i += )
{
for (int j = i + ; j < * a; j += )
{
if (double.Parse(al[i + ].ToString()) > double.Parse(al[j + ].ToString()))
{
object zhong = al[i + ];
al[i + ] = al[j + ];
al[j + ] = zhong;
zhong = al[i];
al[i] = al[j];
al[j] = zhong;
zhong = al[i + ];
al[i + ] = al[j + ];
al[j + ] = zhong;
zhong = al[i + ];
al[i + ] = al[j + ];
al[j + ] = zhong;
}
}
}
Console.WriteLine("数学成绩最低分是{0},是{1}考的。", al[], al[]);
double sum = ;
for (int i = ; i < * a; i += )
{
sum += double.Parse(al[i + ].ToString());
}
Console.WriteLine("英语平均分是:{0}", sum / a);

二、特殊集合

1.stack集合

也叫栈集合、干草堆集合 特点是先进后出 一个一个赋值 一个一个取值 按顺序

添加元素:.push();

弹出元素:.pop();弹出最后一个 并且弹出后 集合内不再有此元素

查看元素:.peek();只查看 不弹出

2.队列集合

queue 特点是先进先出 一个一个赋值 一个一个取值

添加元素:.enqueue();

移除一个元素:.dequeue();从头开始移除

3.哈希表集合

hashtable  哈希表 先进后出 一个一个赋值 但只能一起取值

添加元素:.add(,);一次添加两个元素 一个是key 一个是value

读取:

foreach (object aa in ht.Keys)//单纯的存储Key的集合
{
Console.WriteLine(aa);
}
foreach (object bb in ht.Values)
{
Console.WriteLine(bb);
}

使用枚举类型进行读取,排列成表格:

IDictionaryEnumerator ide = ht.GetEnumerator();
while (ide.MoveNext())
{
Console.WriteLine(ide.Key + "\t" + ide.Value);
}

注:哈希表集合其实包含两个集合 一个是keys 一个是values

ArrayList集合&特殊集合的更多相关文章

  1. c# 集合ArrayList;特殊集合Stack、Queue

    一)  ArrayList 1.foreach遍历数组中各个元素,执行内部语句 2.  3. 4.  myarry.Clear();//将集合清空 bool b = myarry.Contains(3 ...

  2. IT第二十一天 - Collections、ArrayList集合、LinkedList集合、Set集合、HashMap集合、集合的操作注意【修20130828】

    NIIT第二十一天 上午 集合 1. 集合Collection存储数据的形式是单个存储的,而Map存储是按照键值对来存储的,键值对:即键+值同时存储的,类似align="center&quo ...

  3. HashMap,Hashset,ArrayList以及LinkedList集合的区别,以及各自的用法

    基础内容 容器就是一种装其他各种对象的器皿.java.util包 容器:Set, List, Map ,数组.只有这四种容器. Collection(集合) 一个一个往里装,Map 一对一对往里装. ...

  4. 数组转集合、集合转数组、字符串数组与int型、long型数组等的转换

    在项目中经常会遇到数组转集合.集合转数组.数组之间类型转换等操作 1.数组转集合 为了实现把一个数组转换成一个ArrayList,很多Java程序员会使用如下的代码: String str[] = { ...

  5. 廖雪峰Java5集合-1Java集合简介-1Java结合简介

    1.集合 定义:集合就是一堆东西.集合里的东西,称为元素Element 数学中的集合: 有限集合: * 一个班所有的学生组成的集合 * 一个网站所有的商品组成的集合 无限集合: * 全体自然数集合 * ...

  6. Java集合----List集合

    List List 代表一个元素有序.且可重复的集合,集合中的每个元素都有其对应的顺序索引List 允许使用重复元素,可以通过索引来访问指定位置的集合元素.List 默认按元素的添加顺序设置元素的索引 ...

  7. 集合_java集合框架

    转载自http://blog.csdn.net/zsw101259/article/details/7570033 Java集合框架图 简化图: Java平台提供了一个全新的集合框架.“集合框架”主要 ...

  8. Java 集合学习--集合概述

    一.集合框架 集合,通常也叫容器,java中有多种方式保存对象,集合是java保存对象(对象的引用)的方式之一,之前学习的数组是保存对象的最有效的方式,但是数组却存在一个缺陷,数组的大小是固定的,但是 ...

  9. Java集合——遍历集合元素并修改

    Java集合——遍历集合元素并修改 摘要:本文主要总结了遍历集合的方式,以及在遍历时修改集合要注意的问题. 遍历Collection 对List和Set的遍历,有四种方式,下面以ArrayList为例 ...

  10. Kotlin集合——List集合

    Kotlin集合——List集合 转 https://www.jianshu.com/p/3f3bb4943638   List集合的最大特征就是集合元素都有对应的顺序索引.List集合允许使用重复元 ...

随机推荐

  1. 和我一起学python,基本概念 (life is short ,we need python)

    作者:tobecrazy  出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 基本概念 : 常量: 常量名全部大写,如PI 变量: ...

  2. [转] This Android SDK requires Android Developer Toolkit version 23.0.0 or above

    问题描述: This Android SDK requires Android Developer Toolkit version 23.0.0 or above.  Current version ...

  3. Velocity 基本语法

    Velocity 基本语法 Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上.Velocity 是 Apache 基金会的项目,开发的目 ...

  4. 【python】 urllib.unquote()

    来源:http://blog.csdn.net/anhuidelinger/article/details/10096727 urllib.unquote() 字符串被当作url提交时会被自动进行ur ...

  5. 解决Idea创建maven-archetype-webapp项目无java目录的问题

    一.背景 在适用IDEA创建maven-archetype-webapp项目的时候,创建完成后发现在main文件夹下没有java源文件夹,不少小伙伴也遇到该问题,但不知道怎么解决,下面我就来分享解决步 ...

  6. shell之数值运算

    Shell中声明变量默认是字符串, 要参与数值运算,可使用下面方式,简单,表示以数值方式.

  7. 3.2 STL中的函数对象类模板

    *: STL中有一些函数对象类模板,如下所示: 1)例如要求两个double类型的x 和y 的积,可以: multiplies<double>()(x,y); 该表达式的值就是x*y的值. ...

  8. 20145206实验四《Android开发基础》

    20145206 实验四<Android开发基础> 实验内容 ·安装Android Studio ·运行安卓AVD模拟器 ·使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 ...

  9. 20145206邹京儒《Java程序设计》第一周学习总结

    20145206 <Java程序设计>第1周学习总结 教材学习内容总结 1.三大平台:Java SE.Java EE与Java ME.Java SE是各应用平台的基础,分为四个主要的部分: ...

  10. hdu2030 汉字统计

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2030 解题思路:主要考察汉字的编码方式, 汉字机内码在计算机的表达方式的描述是,使用二个字节,汉字的每 ...