二、集合  //定义一个集合,集合是一个类,

1、 定义:

ArrayList al = new ArrayList();

2、添加数据:al.add();//添加数值,可以添加无数个元素,集合中没有规定
 int i=al.Add(3);
 int k=al.Add(5);
 int j=al.Add(7);

3、插入数据:

al.insert(1,9);//集合可以插入数值,意义为在索引1这个位置,插入9这个数;原有位置的数据依次索引向后靠一位;

4、移除数据:

1)Remove

 al.Remove(5);//括号内输入的是数值,当插入的数把后面的数值挤到后面之后,在移除时,只移除第一次出现的数值即使后面有相等的数值。

2)RemoveAt

 al.RemoveAt(0);//输入的必须是索引,移除某个指定索引出的数值,只移除第一次出现的数值即使后面有相等的数值。

5、读取数据:

//如何读取数值;
 al[0];  //集合名+[]+索引;

6、集合中的元素的个数统计

 int cc = al.Count;//输出的是集合元素的个数;

7、 冒泡排序

al.Sort();//对集合中的元素进行排序,从小到大排序,无返回值;使用指定的比较器(即>、<)对元素进行排序;

8、索引显示

1).IndexOf();

int sy = al.IndexOf(12.0);

//如果索引显示-1,就是没有找到这个元素;只返回第一个匹配项的索引。因为数据类型不一样,比较的时候一定要注意数据类型是否相符,否则比较不出来。

2).LastIndexOf();//返回最后一个索引的匹配项;

int sy2 = al.LastIndexOf(12.0);

9、清空数据.Clear();

al.Clear();//清空集合中的数据元素,清空之后还可以再重新添加新元素;

10、判断是否包含 .Contains();

 bool b=xal.Contains(12.0);//返回布尔值,判断集合中是否包含输入的值;

11、复制集合.Clone();

ArrayList xal = new ArrayList();
xal = (ArrayList)al.Clone();//复制集合中的元素,装入新的集合中;

12、 注意:

al.Add(double.Parse(Console.ReadLine()));

直接赋值即可.如果是数字,将来要比较大小,需要在添加的时候转换成数值类型,再添加到集合里面,否则,会当做字符串的编码区分大小,会出错;因为集合里面包含很多类型的值;

集合程序的编写(以输入班级人数、成绩计算平均分为例)

Console.Write("请输入人数:");

int n = int.Parse(Console.ReadLine());

ArrayList al = new ArrayList();

int i = 0;

for (i = 0; i < n; i++)

{

Console.Write(i + " :");

Console.Write("请输入分数:");

al.Add(double.Parse(Console.ReadLine()));

}

double sum = 0;

for (int j = 0; j < n; j++)

{

sum = sum + double.Parse(al[j].ToString());

}

double avg = sum / n;

Console.WriteLine("平均分" + avg);

for (int d = 0; d < n; d++)

{

Console.WriteLine(al[d]);

}

Console.ReadLine();

// al.Sort();//对集合中的元素进行排序,从小到大排序,无返回值;

//al.Reverse();//这个是将顺序翻转;要想从大到小排列,执行reverse。

// int sy = al.IndexOf(12.0);//如果索引显示-1,就是没有找到这个元素;只返回第一个匹配项的索引。因为数据类型不一样,比较的时候一定要注意数据类型是否相符,否则比较不出来。

//int sy2 = al.LastIndexOf(12.0);

//al.Clear();//清空集合中的数据元素,清空之后还可以再重新添加新元素;

//al.Clone();

//ArrayList xal = new ArrayList();

//xal = (ArrayList)al.Clone();//复制集合中的元素,装入新的集合中;

//bool b=xal.Contains(12.0);//返回布尔值,判断集合中是否包含输入的值;

//Console.WriteLine("第一个索引:" + sy + "最后一个索引" + sy2);

10-21C#基础--集合的更多相关文章

  1. Windows 10开发基础——文件、文件夹和库(一)

    原文:Windows 10开发基础--文件.文件夹和库(一) 主要内容: 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和文件夹 先了解一 ...

  2. JAVA基础-集合(二)

    一.Map整体结构体系 Map是集合的另一大派系,与Collection派系不同的是Map集合是以键值对儿的形式存储在集合的.两个键为映射关系,其中第一个键为主键(主键是唯一的不可重复),第二个键为v ...

  3. Java基础-集合的嵌套

    Java基础-集合的嵌套 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.静态导入 静态导入是在JDK1.5后的新特性,可以减少开发的代码量,但是实际用处是很一般,静态导入的标准 ...

  4. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

  5. 10个基础的linux网络和监控命令

    配置zookeeper集群时,需要查看本机ip,输入命令 hostname -i   就会只显示主机ip, 下边搜了一篇常用的    命令,闲的时候多敲敲命令,以便用的时候再找! 我下面列出来的10个 ...

  6. page74-泛型可迭代的基础集合数据类型的API-Bag+Queue+Stack

    [泛型可迭代的基础集合数据类型的API] 背包:就是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素.(用例也可以检查背包是否为空, 或者获取背包中元素的 ...

  7. Java18-java语法基础——集合框架

    Java18-java语法基础——集合框架 一.什么是集合框架 1.集合框架:是为表示和操作集合而规定的一种统一的.标准的体系结构. 2.任何集合框架都包含三大块内容:对外的接口.接口的实现和对集合运 ...

  8. Java基础-集合框架-ArrayList源码分析

    一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList. ...

  9. 第10讲-Java集合框架

    第10讲 Java集合框架 1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1 List 1.2.2 Set 1.2.3 Map 2.具体内容 2.1.Java集合框架 2.1.1 为什么需要 ...

  10. C语言的10大基础算法

    C语言的10大基础算法 算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手.本文包括了经典的Fibonacci数列.简易 ...

随机推荐

  1. MVC 绑定 下拉框数据

    HTML: <div class="form-group col-sm-12"> <div class="col-sm-4"> < ...

  2. windows DPAPI加密解密学习

    #include "stdafx.h" #include <windows.h> #include <Wincrypt.h> #include <io ...

  3. QT 使用QPainter 绘制图形 和 世界变换 world transform

    1. 绘制椭圆  饼状型 贝塞尔曲线 绘制图像重写方法 void paintEvent(QPaintEvent *event)即可. void Widget::paintEvent(QPaintEve ...

  4. Nagios的基本安装配置

    //////////////////////nagios//////////////////////nagios原理:http://www.linuxidc.com/Linux/2013-11/927 ...

  5. dom 兼容性问题1_节点部分

    AS : ECMAScript xml . html js组成: 1,ECMAScript : 是Javascript的核心标准.同时也是一个解释器. 2,DOM: document object m ...

  6. java:IO:file 类

    刷某一目录下的所有文件夹/文件 public class FileDemo2 { public static void main(String args[]) { File file = new Fi ...

  7. docker安装---CentOS_7

    操作系统要求 要安装Docker,您需要64位版本的CentOS 7.步骤:   卸载旧版本 Docker的旧版本被称为docker或docker-engine . 如果这些已安装,请卸载它们以及关联 ...

  8. Windows 10 SDK 10.0.10069 : The installer failed. User cancelled installation. Error code: -2147023294

    注* 请先跳到文章后面的配置“操作系统的区域设置”部分,然后尝试重试安装VS,如果仍然失败,请看下面内容. 安装UAP SDK失败 Visual Studio 2015 RC Community 安装 ...

  9. NHibernate常见错误汇总

    NHibernateSample.Data.Test.QueryHQLFixture.WhereTest: NHibernate.Hql.Ast.ANTLR.QuerySyntaxException ...

  10. Codeforces Round #276 (Div. 2)C. Bits(构造法)

    这道题直接去构造答案即可. 对于l的二进制表示,从右到左一位一位的使其变为1,当不能再变了(再变l就大于r了)时,答案就是l. 这种方法既可以保证答案大于等于l且小于等于r,也可以保证二进制表示时的1 ...