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数列.简易 ...
随机推荐
- 回溯法之k着色问题
package main import ( "fmt" ) type Graphic struct { edges [][]int colors int color []int f ...
- ztree高级实例(原创)
最近项目中需要设计一个类似收藏夹的功能保存用户常用的东西,需要客户体验好,所以想到了以前用过的ztree. 在用ztree的过程中遇到一些问题,在此记录,提醒自己,也帮助遇到相同情况的同行们. 1.至 ...
- QT国际化示例, 检测系统语言,设置适合语言,按键切换显示语言
1.效果如下图,开启就自动检测系统语言,选择系统语言显示, UI有控件设置,在中文和英文之间切换.. 2. 源码 dialog.h #ifndef DIALOG_H #define DIALOG_H ...
- Spring初学之使用JdbcTemplate
Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.pr ...
- Codeforces Round #374 (Div. 2) A , B , C 水,水,拓扑dp
A. One-dimensional Japanese Crossword time limit per test 1 second memory limit per test 256 megabyt ...
- hdu2243 ac自动机+矩阵快速幂
和上一题有点相似,但是这题是求包含的,并且还要求和 可以求所有情况-不包含的情况,所有情况可用矩阵快速幂求得 还有一点就是如果题目说答案余2^64,直接开unsigned long long就行了,会 ...
- mysql分组取topn
本文来自 http://www.jb51.net/article/31590.htm 有些语句sql top n 是sqlserver语法 --按某一字段分组取最大(小)值所在行的数据 代码如下: ...
- 中文译文:Minerva-一种可扩展的高效的深度学习训练平台(Minerva - A Scalable and Highly Efficient Training Platform for Deep Learning)
Minerva:一个可扩展的高效的深度学习训练平台 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2015-12-1 声明 ...
- 清新大气的ListView下拉上拉刷新--第三方开源--PullDownListView
下载地址:https://github.com/guojunyi/PullDownListView 使用: xml: <com.pulldownlistview.PullDownListView ...
- MySQL全文搜索
http://www.yiibai.com/mysql/full-text-search.html 在本节中,您将学习如何使用MySQL全文搜索功能. MySQL全文搜索提供了一种实现各种高级搜索技术 ...