集合(ArrayList)

用的时候导入命名空间:using System.Collections;

加入数据时,不用考虑数据类型

拿出数据时多数情况需要里氏转换

方法

用ArrayList的方法添加内容,定义一个person类有一个打招呼方法,如果需要用到person类的内容,里氏转换并调用打招呼方法,否则,输出添加的内容

代码:

            ArrayList arrayList = new ArrayList();//类的初始化arrayList.Add("小蚊子");//往arrayList中添加arrayList.Add(12);arrayList.Add(new person("小郭", 20, '女'));for (int i = 0; i < arrayList.Count; i++)//遍历 arrayList的数组,arrayList.Count为数组的长度
            {if (arrayList[i] is person)//用is判断arrayList[i] 是否能转化为 person类
                {((person)arrayList[i]).SayHi();//如果能转换为person,强转,调用person中SayHi方法
                }else{Console.WriteLine(arrayList[i]);//输出arrayList[i]
                }}Console.ReadKey();}}public class person{public person(string name, int age, char sex){this.Name = name;this.Age = age;this.Sex = sex;}private string _name;public string Name{get { return _name; }set { _name = value; }}private int _age;public int Age{get { return _age; }set { _age = value; }}private char _sex;public char Sex{get { return _sex; }set { _sex = value; }}public void SayHi(){Console.WriteLine("{0}岁的{1}在软件学院是最纯洁的{2}学生", Age, Name, Sex);}}
}

ArrayList其它常用方法:

           ArrayList arrayList = new ArrayList();int[] nums = new int[] { 3, 4, 5, 6, 7, 9, 8, 8 };arrayList.InsertRange(0, nums);//在指定索引位置插入一个数组int num = arrayList.LastIndexOf(9);//查找出元素最后一次出现的位置arrayList.Remove(9);//移除集合中某个元素arrayList.RemoveAt(2);//给个索引,移除这个索引对应的元素arrayList.RemoveRange(4, 2);//从指定索引位置开始移除,移除几个元素arrayList.Reverse();//集合反转arrayList.Sort();//排序

哈希表(Hashtable)
   用的时候导入命名空间:using System.Collections;

加入数据时,不用考虑数据类型,以键值对的方式存储数据,键值不能相同

哈希表无序

常用方法:

           Hashtable hashTable = new Hashtable();//实例化化 hashTablehashTable.Add(1, "小杨");//在 hashTable中插入键值为1,值为小杨数据hashTable.Add(2, "老苏");hashTable.Clear();//清空 hashTable中的值bool result = hashTable.Contains(1);//判断 hashTable中是否包含键值为1的数据hashTable.Remove("小杨");//移除小杨// hashTable[key];//这个key对应的值int num = hashTable.Count;//哈希表的长度

泛型集合(List<T>)
  不需要导入命名空间

存放指定类型的数据

如果为int类型,可以直接进行求和,最大值,最小值,平均值

方法:求一个int类型的泛型集合长度为100的最大值,最小值,平均值,和

            List<int> num = new List<int>();//实例化numint max, min, sum;for (int i = 0; i < 100; i++)//在num中添加字段
            {num.Add(i);}sum = num.Sum();//计算num的和max = num.Max();//最大值min = num.Min();//最小值double avg = num.Average();//求平均值

字典:Dictionary<TKey,TValue>

不需要导入命名空间,需要实例化

键值和值都是指定的类型

Key:键值类型,一个哈希表中键值不能相同

TValue:值类型

例子:简繁转换

           Dictionary<char, char> dic = new Dictionary<char, char>();string newStr = "";for (int i = 0; i < Jian.Length; i++){dic.Add(Jian[i], HXW[i]);}for (int i = 0; i < str.Length; i++){if (dic.ContainsKey(str[i])){newStr += dic[str[i]];}else{newStr += str[i];}}Console.WriteLine(newStr);Console.ReadKey();

总结:

    HashTable,ArrayList,可以存放任意类型的数据,HashTable、Dictionary都是以键值对的方式存放数据,List和Dtctionary插入数据时不用刻意的考虑数据类型。这四个都可以对其数据进行增,删,查,改

转载于:https://www.cnblogs.com/guohuiru/archive/2012/11/19/2776671.html

集合、哈希表、泛型集合、字典相关推荐

  1. 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较

    1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...

  2. List泛型集合总结(一)

    为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合: a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须 ...

  3. C#:List泛型集合

    数组的不足 我们在使用数组管理数据的时候,是需要预先知道数组的长度的.但是在我们实际的开发过程中,很多数据往往无法事先知道一共有多少,在面对这些数据的时候,就无法使用数组来进行管理了. 一.集合结构 ...

  4. C#泛型集合定义及使用

    C# 语言中泛型集合是泛型中最常见的应用,主要用于约束集合中存放的元素. 由于在集合中能存放任意类型的值,在取值时经常会遇到数据类型转换异常的情况,因此推荐在定义集合时使用泛型集合. 前面<C# ...

  5. 源程序的相似性分析 —— 基于Python实现哈希表

    一.问题描述 对于两个C++语言的源程序代码,用哈希表的方法分别统计两个程序中使用C++语言关键字的情况,并最终按定量的计算结果,得出两份程序的相似性. 二.需求分析 建立C++语言关键字的哈希表,统 ...

  6. [Java]源码角度深入理解哈希表,手撕常见面试题

    专栏简介 :java语法及数据结构 题目来源:leetcode,牛客,剑指offer 创作目标:从java语法角度实现底层相关数据结构,达到手撕各类题目的水平. 希望在提升自己的同时,帮助他人,,与大 ...

  7. 链表实现哈希表以及哈希表的应用

    ''' 哈希表 字典和集合一个通过哈希函数来计算数据存储位置的数据结构,通常支持如下操作: insert:插入键值对 get :如果存在键为key的键值对则返回其value,否则返回空值 delete ...

  8. 关于哈希表(Hashtable)个人学习理解

    数据结构–哈希表(Hashtable.又称散列表) 最近做了一个题目:想要查看集合中的某个指定元素,但是不知道具体的位置. 一般情况下是遍历这个数组的全部,然后去找到这个元素.若此时元素基数不是很大的 ...

  9. leetcode哈希表解决异位词问题

    哈希表 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构. 它通过计算出一个键值的函数(hash function),将所需查询的数据映射到表中一个位置 ...

  10. 九, Java实现哈希表(拉链法, 数组+单链表)

    九, 哈希表 9.1 哈希表的定义和特点 散列表(Hash table, 也叫哈希表),是根据关键码 - 值(Key - value)而直接进行访问的数据结构. 也就是说, 它通过把关键码 - 值映射 ...

最新文章

  1. ASP.NET页生命周期概述
  2. 春节后面试别人的经历总结之一,好岗位分享给还在找工作中的软件开发爱好者们【转】...
  3. JDK动态代理实现简单AOP--转
  4. 苹果手机怎么编辑word文档_原创首发:编辑和修改PDF文档,将PDF转换为WORD技巧...
  5. C语言实现封装、继承、多态
  6. 北方华创:「8大报表应用场景」助力全方位数字化管理
  7. 素材 | 3D立体设定数据多彩数据统计图元素PSD模板
  8. Android 微信分享后留在微信,没有回调的问题解决方案
  9. 接口自动化测试框架实例教程
  10. 程序员的自我修养之数学基础10:超定方程的求解
  11. android 打开闹钟,Android中的闹钟设置关闭和打开
  12. 有道云笔记android手写,有道云笔记手写记事 保留笔迹原汁原味
  13. 目标客户画像_做营销时,如何做好目标用户群体画像?
  14. 基于GNN网络的session推荐模型(知识图谱技术在推荐场景的应用)
  15. 第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(沈阳)
  16. python在手,天下我有!
  17. GPU-CUDA-图形渲染分析
  18. 报告显示,疫情降低了人们的财务和社交幸福感
  19. JavaWeb基本概念与术语
  20. mysql 1.4安装步骤_从零开始搭建系统1.4——MySql安装及配置

热门文章

  1. 累加寄存器(AC)入门
  2. 微信小程序多位验证码/密码输入框
  3. Linux-mysql备份
  4. ASP.NET MVC Razor视图引擎
  5. TADVAlertWindow
  6. 抽象类,接口,魔术方法
  7. VSCode好用的Python插件及配置
  8. 信息存储服务公司Everlaw获810万美金注资
  9. 提供 web前端、H5、html页面 技术服务
  10. SVN客户端日志无法显示的解决