zoukankan      html  css  js  c++  java
  • 使用集合组织相关数据

    集合概述

    集合简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集合内最大元素的个数)进行定义和维护!

    ArrayList

    ArrayList非常类似于数组。也有人称他为数组列表,它的容量可以根据需要进行动态扩充,而它的索引也会根据集合容量的扩展而重新分配和调整。也就是说ArrayList集合中的元素的下标是不确定的、可变的。

    ArrayList类属于System.Collections命名空间,这个命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。

    语法:

    Using System.Collections;//导入命名空间
    //定义ArrayList对象
    ArrayList    ArrayList集合名称=new  ArrayList(【长度】);

    ArrayList的常用方法和属性

                   属性名称                说明
                  Count 获取ArrayList中实际包含的元素数
          返回值类型         方法名称         说明
               int   add(Object Value) 将对象添加到ArrayList的结尾处
               Void   RemoveAt(int  index) 移除ArrayList指定索引处的元素
               Void   Remove(Object  Value) 从ArrayList中移除特定的对象
               Void   Clear() 从ArrayList中移除所有的元素

    HashTable

    在ArrayList中我们可以通过索引访问集合中的元素,但是当集合内的元素索引频繁变化时要找出每个元素的位置(索引)就变得非常麻烦你了,

    C#提供了一种叫HashTable的数据结构,通常称他为哈希表也有人称他为“字典”,给它起字典这个名字是因为它和字典非常类似,都是通过一个单词查找出有关此单词的更多信息,HashTable是通过键(Key)对值(Value)来组织数据的

    HashTable的常用属性和方法

                    属性                       说明
    count 获取包含在HashTable中键值对的数目
    Keys 获取包含HasTable中键的集合
    Values 获取包含HasTable中值得集合

      返回值类型 方法名称                             说明
    void Add(Object Key,Object Value) 将带有指定键和值得元素添加到HashTable中
    Void Remove(Object  Key) 从HashTable中移除带有特定键的元素
    Void Clear() 清除HashTable中的所有元素
    泛型和泛型集合

    泛型和泛型集合

    通过ArrayList和HashTable存储的数据都会转换成Object类型,这就意味着它可以在一个集合中存储不同的类型元素,在遍历集合时就有可能引发强制类型转换错误的问题。而泛型集合是类型安全的,在定义时就先定了集合中的元素类型,下面将详细讲解泛型和泛型集合。

    泛型

    泛型是C#2.0 中的一个新特性,泛型引入了一个概念:类型参数,通过使用类型参数(T)减少了运行时强制类型转换或装箱拆箱操作的风险,同过泛型可以最大限度的重用代码,保护类型安全及提高性能,它的最常见应用是创建集合类,可以约束集合类中的元素类型。个比较典型的泛型集合是LIst<T>和Dictionary<K,V>,下面进行详细讲解、

    泛型集合

    在System.Collections.Generic命名空间中定义了去多泛型集合类这些类可以代替上面的ArrayList

    定义一个List<T>集合的语法如下:

    List <T>  集合名称=new   List<T>();

    “<T>”中的T可以对集合中的元素类型进行约束,T表名集合管理的元素类型。

    List<T>和ArrayList的区别

    1. List<T>对保存的元素类型做约束,ArrayList可以保存任何类型的元素
    2. list<T>保存值类型元素不会进行装箱拆箱操作而ArrayList会

    泛型集合Dictionary<K,V>

    泛型集合Dictionary可以代替上面的HashTable

    定义一个泛型集合Dictionary<K,V>的语法

    Dictionary<K,V>  集合名称=new   Dictionary<K,V>();

    在”<K,V>”中K表示集合中Key的类型,V表示Value的类型,他们的含义和List<K,V>是相同的

      1. Dictionary<K,V>对保存的元素类型做约束,HashTablet可以保存任何类型的元素
      2. Dictionary<K,V>保存值类型元素不会进行装箱拆箱操作而HashTablet会

    泛型类

    在集合中使用泛型只是泛型多种应用的一种,在类、方法等方面已有泛型的应用

    定义一个泛型类的语法如下:

    public class     类名<T>
    {
        //....
    }

    T指类型参数,代表具体的数据类型,可以是值类型也可以是引用类型

  • 相关阅读:
    Leetcode 92. Reverse Linked List II
    Leetcode 206. Reverse Linked List
    Leetcode 763. Partition Labels
    Leetcode 746. Min Cost Climbing Stairs
    Leetcode 759. Employee Free Time
    Leetcode 763. Partition Labels
    搭建数据仓库第09篇:物理建模
    Python进阶篇:Socket多线程
    Python进阶篇:文件系统的操作
    搭建数据仓库第08篇:逻辑建模–5–维度建模核心之一致性维度2
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5182996.html
Copyright © 2011-2022 走看看