10-21C#基础--集合
二、集合 //定义一个集合,集合是一个类,
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#基础--集合的更多相关文章
- Windows 10开发基础——文件、文件夹和库(一)
原文:Windows 10开发基础--文件.文件夹和库(一) 主要内容: 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和文件夹 先了解一 ...
- JAVA基础-集合(二)
一.Map整体结构体系 Map是集合的另一大派系,与Collection派系不同的是Map集合是以键值对儿的形式存储在集合的.两个键为映射关系,其中第一个键为主键(主键是唯一的不可重复),第二个键为v ...
- Java基础-集合的嵌套
Java基础-集合的嵌套 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.静态导入 静态导入是在JDK1.5后的新特性,可以减少开发的代码量,但是实际用处是很一般,静态导入的标准 ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- 10个基础的linux网络和监控命令
配置zookeeper集群时,需要查看本机ip,输入命令 hostname -i 就会只显示主机ip, 下边搜了一篇常用的 命令,闲的时候多敲敲命令,以便用的时候再找! 我下面列出来的10个 ...
- page74-泛型可迭代的基础集合数据类型的API-Bag+Queue+Stack
[泛型可迭代的基础集合数据类型的API] 背包:就是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素.(用例也可以检查背包是否为空, 或者获取背包中元素的 ...
- Java18-java语法基础——集合框架
Java18-java语法基础——集合框架 一.什么是集合框架 1.集合框架:是为表示和操作集合而规定的一种统一的.标准的体系结构. 2.任何集合框架都包含三大块内容:对外的接口.接口的实现和对集合运 ...
- Java基础-集合框架-ArrayList源码分析
一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList. ...
- 第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 为什么需要 ...
- C语言的10大基础算法
C语言的10大基础算法 算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手.本文包括了经典的Fibonacci数列.简易 ...
随机推荐
- MVC 绑定 下拉框数据
HTML: <div class="form-group col-sm-12"> <div class="col-sm-4"> < ...
- windows DPAPI加密解密学习
#include "stdafx.h" #include <windows.h> #include <Wincrypt.h> #include <io ...
- QT 使用QPainter 绘制图形 和 世界变换 world transform
1. 绘制椭圆 饼状型 贝塞尔曲线 绘制图像重写方法 void paintEvent(QPaintEvent *event)即可. void Widget::paintEvent(QPaintEve ...
- Nagios的基本安装配置
//////////////////////nagios//////////////////////nagios原理:http://www.linuxidc.com/Linux/2013-11/927 ...
- dom 兼容性问题1_节点部分
AS : ECMAScript xml . html js组成: 1,ECMAScript : 是Javascript的核心标准.同时也是一个解释器. 2,DOM: document object m ...
- java:IO:file 类
刷某一目录下的所有文件夹/文件 public class FileDemo2 { public static void main(String args[]) { File file = new Fi ...
- docker安装---CentOS_7
操作系统要求 要安装Docker,您需要64位版本的CentOS 7.步骤: 卸载旧版本 Docker的旧版本被称为docker或docker-engine . 如果这些已安装,请卸载它们以及关联 ...
- Windows 10 SDK 10.0.10069 : The installer failed. User cancelled installation. Error code: -2147023294
注* 请先跳到文章后面的配置“操作系统的区域设置”部分,然后尝试重试安装VS,如果仍然失败,请看下面内容. 安装UAP SDK失败 Visual Studio 2015 RC Community 安装 ...
- NHibernate常见错误汇总
NHibernateSample.Data.Test.QueryHQLFixture.WhereTest: NHibernate.Hql.Ast.ANTLR.QuerySyntaxException ...
- Codeforces Round #276 (Div. 2)C. Bits(构造法)
这道题直接去构造答案即可. 对于l的二进制表示,从右到左一位一位的使其变为1,当不能再变了(再变l就大于r了)时,答案就是l. 这种方法既可以保证答案大于等于l且小于等于r,也可以保证二进制表示时的1 ...