zoukankan      html  css  js  c++  java
  • 泛型集合

     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存在两种不同的翻译名称:公共语言运行库和公共语言运行时。

  • 相关阅读:
    "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复,提高租房效率 | 36氪
    金融街
    Jsensation | 氪加
    Polyvore
    周翔宇_百度百科
    鸵鸟心态
    新闻:型牌男装:网上订服装,如何将返修率降到5个点以下 | IT桔子
    【案例】舒邑:一个女装品牌的奇葩打法-@i黑马
    专访OPPO李紫贵:ColorOS用户过千万 软硬融合生态版图初现
    关于我们-EIBOA易博男装-互联网品质男装品牌-在线销售男士西服,衬衫,外套,西裤,领带|全场免运费,30天退换货保障
  • 原文地址:https://www.cnblogs.com/beijing1/p/8710117.html
Copyright © 2011-2022 走看看