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

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. Ubuntu下用crontab 部署定时任务

    用php做了一个网站,其中一个统计工能,需要每周定时用行.想看看有什么方法,之前看别人的东西,一般有2中方式,一个是php自带的定时任务,一个是用系统 带的,linux下的crontab和window ...

  2. Java中各种集合特点总结

    1:集合:    (1) Collection(单列集合)         List(有序,可重复)             ArrayList                 底层数据结构是数组,查 ...

  3. python global

    如果想在函数内部改变函数外的变量值,用global语句完成: 在不传该变量值入函数的情况下要改变它的值: >>> a = 3 >>> def f(): ... gl ...

  4. Python创建插入数据库MySQL

    首先要在控制台创建好数据库 mysql -u root -p 创建数据库 查看数据库 -------------------更新分割线(上面为新增...太久没用都忘了SQL基本命令了)-------- ...

  5. review39

    不可以在非同步方法中使用wait().notify()和notifyAll().

  6. Android之动画1

    点此下载 package com.example.animationdemo; import java.util.Timer; import java.util.TimerTask; import a ...

  7. Secret Code

    Secret Code 一.题目 [NOIP模拟赛A10]Secret Code 时间限制: 1 Sec  内存限制: 128 MB 提交: 10  解决: 6 [提交][状态][讨论版] 题目描述 ...

  8. Pycharm如何打断点

    一. python代码的调试方式 1. 使用print语句打印出来 2. 在编辑工具中,加断点跟踪(打断点) 3. 使用日志模块,输出到日志中 下面我们来看一下如何打断点 二. 环境 python 3 ...

  9. uva 11088 暴力枚举子集/状压dp

    https://vjudge.net/problem/UVA-11088 对于每一种子集的情况暴力枚举最后一个三人小组取最大的一种情况即可,我提前把三个人的子集情况给筛出来了. 即 f[S]=MAX{ ...

  10. TCP/IP详解学习笔记(2)-数据链路层【转】

    转自:http://blog.csdn.net/goodboy1881/article/details/665061 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP ...