我在北京写代码 写出心中悲与喜 写出人间的悲欢离合 欢迎阅读 我的第三章 使用集合组织相关数据(泛型集合)

ArrayList arry = new ArrayList();
            arry.Add("小明");
            arry.Add("小D");
            arry.Add("小B");
            arry.Insert(2,"小狗");
            arry.Remove("小狗");
            arry.RemoveAt(0);
            arry[0]="小明哥";
            bool ic = arry.Contains("菊花");
            if (ic)
            {
                Console.WriteLine("这是abc");
            }
            else 
            {
                Console.WriteLine("这是cba");
            }
            foreach (var item in arry)
            {
                Console.WriteLine(item);
            }

            //seF se = new seF();
            ArrayList a = new ArrayList() 
            { 
                new seF(){name="sb"},
                new seF(){name="ccc"},

            };
            System.Collections命名空间
            实例化ArrayList对象。
            ArrayList engineers =new ArrayList();
            ArrayList engineers =new ArrayList(5);[可以指定长度]
            se engineers =(se) engineers [0];

                Hashtable添加元素
          Hashtable enginess = new Hashtable();
          engineers.Add(Key,Value);     

 

 

 

 

集合概述

 1.集合:一个动态维护2长度的数组

       ArrayList集合

 2.可维护动态长度的集合
  01.ArrayList:
   一个可动态维护长度的集合
  02.集合结构
   001.下标从0开始
   002.元素的类型是Object类型
  03.初始化
   001.引用System.Collections命名空间,实例化ArraysList对象
   002.集合可以指定初始容量,也可以不指定
    0001.不指定容量的情况下默认长度为0
 3.基本操作
  01.Add()
   集合名.Add(需要添加的元素)
    集合尾部追加元素
     *集合中添加值类型的元素时,会执行装箱处理
  02.Insert()
   集合名.Insert(下标位置,添加的元素)
    集合中插入元素
  03.Count
   集合名.Count
    获取集合中的元素数量
  04.删除元素
   001.Remove(对象名)
    语法:ArraysList名.Remove(对象名)
     *删除指定对象名的对象 
     *没有相应的对象名是不会出现异常
   002.RemoveAt(下标)
    语法:ArraysList名.RemoveAt(对象名)
     *删除指定索引的对象
     *没有相应的下标时会出现异常(集合越界)
   003.Clear()
    语法:ArraysList名.Clear(对象名)
     *删除集合内的所有元素
  05.Contains()
   语法:集合名.Contains(元素名)
    判断集合中是否有相应的元素,返回布尔类型  
 4.集合初始化器
  01.C#3.0语言的新特性之一
  02.由系统元素初始化器构成,包围在“{”和“}”之间,并使用逗号进行分割
   语法:
    ArrayList arr = ArrayList()
    {
     1,5,new SE(){"帅帅",12,"男"}
    };
     *结尾不使用任何符号,但大括号后需要用英文符号结尾
      *在初始化器中可以添加任何类型的元素
 5.访问ArraysList单个元素
  语法:
   ArraysList(集合名)[index(访问的下标)]//按指定索引(下标)取得对象
 6.访问ArraysList中所有元素
  *使用循环实现

        Hashtable

 1.集合
  01.动态可维护长度
  02.可通过关键字检索
 2.HashTable通常称为哈希表
  01.根据键(Key)可以查询到相应的值(Value)
   *键和值一一对应
  02.Key值不可重复
 3.使用HashTable
  01.给HashTable添加元素
   HashTable hash = new Hashtable();
   Add(Key,Value);
  02.获取HashTable的元素
   SE se1 = (SE) hash["key"];//通过key获取元素(需要类型转换)
   se1.Show();
    *没有找到相应的key是返回一个null
  03.删除HashTable的元素
   hash.Remove("key");//通过key删除元素
    *如没有相应的key,不会出现异常
  04.清空HashTable中所有元素
   hash.Clear();//清空所有
 4.遍历HashTable
   *遍历HashTable通过foreach循环
  01.遍历键和值
   foreach(DictionaryEntry ob in hash)
   {
    Console.WriteLine((stirng)ob);
    SE se = (SE)ob;
    Console.WriteLine(se.Name);
   }
  02.遍历键
   foreach(Object ob in hash.Keys)
   {
    Console.WriteLine((string)ob);
   }
  03.遍历值 
   foreach(Object ob in hash.Values)
   {
    SE se = (SE)ob;
    Console.WriteLine(se.Name);
   }
  
       泛型和泛型集合

 1.使用List<T>(泛型集合)
  *<T>尖括号中的参数是集合所能添加的类型
  *若添加别的类型的参数会出现异常
 2.List<T>基本操作
  01.命名空间:System.Collections.Generic;(一般情况下编译器自动导入)
  *基本的操作跟ArrayList相同
 3.什么是泛型集合
  01.泛型<T>最常见的用途是创建集合类
  02.泛型集合可以约束集合内的元素类型
  03.经典泛型集合List<T>、Dictionary<K,V>
   *<T>、<K,V>表示该泛型集合中的元素类型
  04.泛型集合不会用到装箱和拆箱
 04.List<T>与ArrayList的对比
  01.不同点
   001.List<T>:添加元素时类型严格检查。而ArrayList:可以增加任何类型
   002.List<T>:添加和读取值类型元素时,无需装箱拆箱。而ArrayList:添加和读取值类型元素时,需要装箱拆箱

      Dictionary

 1.Dictionary<K,V>通常称为字典
  01.<K,V>约束集合中元素类型
  02.编译时查询类型约束
  03.无需装箱、拆箱操作
   *操作与HashTable操作类似
 2.<K,V>
  01.在Dictionary中<K,V>是自定义的
  02.K:
   001.K不能重复
   002.K不能为空
   003.通过K访问元素时:如没有相应的K,系统会报错
   004.通过K删除元素时:如没有相应的K,系统不会报错
 3.遍历Dictionary
  01.循环遍历时跟HashTable相似,不需要进行类型转换
  02.遍历键和值
   foreach(KeyValuePair<string,SE> ob in hash)
   {
    Console.WriteLine((stirng)ob);
    SE se = (SE)ob;
    Console.WriteLine(se.Name);
   }
    *遍历键和值时循环类型使用KeyValuePair
    *后边的尖括号中添加相应类型的K,V
 4.Dictionary<K,V>与HashTable的对比
  1.不同点
   001.Dictionary<K,V>:增加元素时类型严格检查。而HashTable:可以增加任何元素
   002.Dictionary<K,V>:无序装箱拆箱。而HashTable:需要装箱和拆箱
  02.相同点
   001.通过Key获得Value
   002.添加对象方法相同
   003.遍历方法相似,遍历键和值的时候使用的循环类型不通过

       泛型

 1.泛型
  01.操作的数据类型被定义为一个参数
 2.泛型类
  public class 类名<T>
  {
    //......  
  }
   *T指类型参数,代表具体的数据类型,可以是类类型,也可以是基本数据类型
 3.泛型的重要性
  01.实现代码重用,未来的主流技术
   01.泛型相当于模板,支持所有的类型。使开发者不用为某种类型写特定的方法
  02.性能高,避免繁琐的装箱拆箱
  03.提供了更好的类型安全性
   01.有相应的类型约束,不用进行装箱拆箱。
  04.CLR支持泛型
   001.CLR是公共语言运行库(Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集等),并保证应用和底层操作系统之间必要的分离。CLR存在两种不同的翻译名称:公共语言运行库和公共语言运行时。

原文地址:https://www.cnblogs.com/SFHa/p/8724029.html

时间: 2024-08-06 13:02:46

我在北京写代码 写出心中悲与喜 写出人间的悲欢离合 欢迎阅读 我的第三章 使用集合组织相关数据(泛型集合)的相关文章

写代码的指导思想:如何写出易测、清晰、健壮的牢固代码

背景 写出 BUG 不算糟糕,给人埋坑,让别人写出 BUG ,耗时耗力才更令人讨厌.要想不写出 BUG, 不埋坑,需要用心写出 "易测.清晰.健壮" 的牢固的代码.95% 的代码,能做到这一点,就可以保证几乎无问题了:3%的代码能做到"可复用.可扩展",善莫大焉! 本文结合之前的经历和案例,探讨如何写出"易测.清晰.健壮"的代码. 代码三性 代码的基本标准是:易测.清晰.健壮. 易测 易测,是说代码容易测试.写代码的第一思想是:不要对代码过于自信

[歪谈]经理该不该写代码?

这个话题我在好几个地方看到过,基本上大家的意见有几种: 1.小公司别说经理,老板都得写(这是在说我吗?) 2.一般到100或200人以上的公司,经理很少会直接参与代码的编写. 3.大公司(BAT?这个就不说了)一般经理级别以上不写代码 4.还有个观点支持率比较多:那就是要看公司是做产品的还就是做项目的.如果是做项目的一来公司肯定不会大,二来做项目的公司经理和员工一起写代码是很正常的:如果是做产品的,那么除了直系部门的经理会适当写些代码,大部分核心模块. 好吧,我先放出一些自己的观点,然后我们再做

编程同写作,写代码只是在码字

编程同写作,写代码只是在码字 作者: Phodal Huang  发布时间: 2016-06-30 21:51  阅读: 12842 次  推荐: 43   原文链接   [收藏] 看到一篇文章<We Are Typists First, Programmers Second>,日期是2008年,好早的一篇文章.当现在打算以一个新人的身份重新进入编程领域,或许是受<重来>的影响,或者只是在重新思考——我们究竟应该如何去编程. 写代码只相当于写字 编程这件事情实际上一点儿也不难,当我

关爱码农成长:关于写代码二三事

工作这么多年以来,一直从事软件相关领域,即使担任主管职务,也一直对技术充满热情.写代码写了这么多年,多少有些体会.我把自己对写代码这份工作的心得写下来,希望能给从事相关领域或有志于写代码的人参考. 一.你适合当程序员吗? 程序员,也叫软件工程师.程序设计师,我觉得「程序员」三个字简洁有力,是一种身份的象征. 如果你正从事这份工作,恭喜你!这是个热门行业,在可预见的将来,也不会消失.不过也别高兴太早,这一行的技术汰旧换新非常快,必须不断努力学习才行. 一点天赋 打开一个空白文档,必须创造出代码.与

如果40岁了还在写代码,是一种幸福,还是一种悲哀?

今天突然想到一个问题:如果40岁了还在写代码,是怎样的状态? 然后搜了一下,果然已经有人想到了,我们先来看看知乎的神人回答. 曾经有网友在知乎提问:"如果 40 岁了还在写代码,是一种幸福,还是一种悲哀?请考虑国情,别老拿外国作比方." 下面是其他一些知乎网友的回复: 马上就 40 了,依然在写代码,写各种代码,从C/C++写到 object-c,从 java 写到 lua,乐在其中,享受得很. 当然,我现在基本不是依靠写代码挣钱谋生,事实上,我也几乎也没有纯粹依赖过写代码谋生过.写代

40 岁了还在写代码,是一种幸福,还是一种悲哀?

天光,一檐停风聚天下闲士 半阁藏卷窃古今名家 马上就40了,依然在写代码,写各种代码,从C/C++写到object-c,从java写到lua,乐在其中,享受得很. 当然,我现在基本不是依靠写代码挣钱谋生,事实上,我也几乎也没有纯粹依赖过写代码谋生过.写代码只是一种乐趣,一种爱好. 当然,难道是写代码谋生就一定是痛苦的吗?也未必. 公司有两个同事,都是非常棒的程序员,也是成熟的架构师,一位是77年的,一位是78年的,他们主要的工作内容都是写代码,他们也都乐在其中,事实上,如果不出意外,他们能够在公

分享:40 岁了还在写代码,是一种幸福,还是一种悲哀?

马上就40了,依然在写代码,写各种代码,从C/C++写到object-c,从java写到lua,乐在其中,享受得很. 当然,我现在基本不是依靠写代码挣钱谋生,事实上,我也几乎也没有纯粹依赖过写代码谋生过.写代码只是一种乐趣,一种爱好. 当然,难道是写代码谋生就一定是痛苦的吗?也未必. 公司有两个同事,都是非常棒的程序员,也是成熟的架构师,一位是77年的,一位是78年的,他们主要的工作内容都是写代码,他们也都乐在其中,事实上,如果不出意外,他们能够在公司里继续留下一起合作,我想他们会一直写代码写到

程序员自我修练-提高写代码的能力(转)

首先让我们看一看刚入软件公司会出现的情况: 1. 你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟) --别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心, 对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果. --如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点.同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例.即使抄,在学习阶段

快40岁了,我还要不要继续写代码呢?

正所谓,男怕入错行.女怕嫁错郎,一旦入错行,这意味着你人生方向走错了,职业生涯中会遇到很多不幸和挫折,然后一连串的不顺利,经济收入不理想.给生活带来压力和各种烦恼.其实,每个行业都不容易,关键是你有没有对这个行业兴趣,如果你对这个行业没有兴趣,强迫自己进入这个行业,那肯定你是入错行了.我认为,如果你对这个行业有浓厚的兴趣,我认为跟岁数没有太大的关系.请大家后退一步,我要装逼了. 对编程有着极大的好奇心及兴趣,使我进入了这个行业. 在学校时,刚刚开始学C语言,竟然能实现一些简单的加减乘除的程序,这