zoukankan      html  css  js  c++  java
  • c# 数组和集合

    数组是最为常见的一种结构,是相同类型的、用一个标识符封装到一起的j基本类型数据序列或对象序列,可以用一个统一的数组名和下标来唯一确定数组中的元素。实质上数组是一个简单的线性序列,因此数组访问起来很快。而集合可以看成一种特殊的数组,它也可以存储多个数据,C#中常用的集合包括ArrayList集合和 Hashtable (哈希表)
     
    声明数组
    int[] arr; 声明int形数组
    string[] str;
    为数组分配空间
    arr = new int[5];
    说明:使用new创建数组后,数组的所有元素初始值都是0
     
    声明时候就创建数组
    int[] month = new int[12];
     
    数组初始化
    int[] arr = new int[]{1,2,3,4,5};
    int[] arr = {1,2,3,4,5};
     
    二维数组
    int [,] arr;
    为数组分配空间
    int[,] a = new int[2,4];
    分别为每一维数组分配内存
    int[][] a = new int[12][];
    a[0] = new int[2];
    a[1] = new int[3];
    二维数组初始化
    int[,] arr = new int[,] {{12,1},{3,4}}
    int[,] arr = {{1,2},{3,4}};
     
    遍历数组
    foreach(val in arr) {}
     
    添加数组元素
     
    数组排序
    Array.sort 对一维数组排序
    Array.Reveerse 反转一维数组 最后一个元素变成第一个元素
     
     
     
    ArrayList
    ArrayList 类位于system.collections命名空间下,它可以动态的添加和删除元素,可以将array list类看作扩充了功能的数组,但他并不等于数组
    • 与数组相比 array list增加了
    • 数组容量可以需要自动扩充
    • array list提供了添加删除 和插入某一范围的方法
    • 提供了只读和固定大小包装返回到集合的方法
    • array list只能是一维数组
     
    构造器
    无参构造器
    ArrayList a = new Arraylist();
    传入一个collection
    int[] arr = { 1,2,3,4};
    ArrayList a = new ArrayList(arr);
    指定大小初始化
    ArrayList a = new Arraylist(32);
     
     
     
    Insert
    将元素插入到集合的指定处
    arr.Insert(3,"aa"); 插入到位置3
     
     
    Add
    add允许null元素,并且允许重复元素
     
     
    Clear
    移除ArrayList 所有元素
     
    Remove
    移除特定值的第一个匹配项
    arr.Remove(3);
     
    RemoveAt
    移除指定key的元素
    arr.RemoveAt(3); key==3
     
    RemoveRange
    移除范围内的元素
    arrRemoveRange(start,count);
     
     
    Count
    获取实际元素数
     
    IsFiexedSize
    获取一个值,判断是否有固定大小
     
    IsReadOnly
    获取一个值,判断是否只读
     
    Item
    获取或设置指定索引元素
     
     
     
    public virtual int Capacity{get;set;}
    获取或设置ArrayList可包含的元素数。
     
    public virtual int Count{get;}
    获取ArrayList中实际包含的元素数。
    Capacity是ArrayList可以存储的元素数。Count是ArrayList中实际包含的元素数。Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表的容量会通过自动重新分配内部数组加倍。
    如果Capacity的值显式设置,则内部数组也需要重新分配以容纳指定的容量。如果Capacity被显式设置为0,则公共语言运行库将其设置为默认容量。默认容量为16。
    在调用Clear后,Count为0,而此时Capacity却是默认容量16,而不是0
     
    public virtual void TrimToSize();
    将容量设置为ArrayList中元素的实际数量。
    如果不向列表中添加新元素,则此方法可用于最小化列表的内存系统开销。
    若要完全清除列表中的所有元素,请在调用TrimToSize之前调用Clear方法。截去空ArrayList会将ArrayList的容量设置为默认容量,而不是零。
     
     
    ArrayList中的查找 可以用 Contains IndexOf LastIndexOf
     
    public bool Contains(Object item);
    用来确定某元素是否存在array list集合中 。
    item :要在array list中查找的object,该值可以为空引用
    返回值:如果找到 返回 true 否则 false
    Console.WriteLine(a.Contains(3));
     
    HashTable
    hasttable 通常称为哈希表,表示 建/值对的集合,这些键值对根据建的哈希代码进行组织。每个元素都是一个存贮在DictionaryEntry对象中的键值对。建不可以为空引用,但是值可以.
     
    初始化
    public Hashtable();
    无参数的初始化,默认加载因子 默认哈希代码提供程序和默认比较器来初始化
    public Hashtable(int capacity);
    使用指定容量来初始化
     
     
    添加数据
    Hashtable a = new Hashtable();
    a.Add("id","bh001");
    a.Add("name","tm");
    a.Add("sex","man");
    Console.WriteLine(a.Count);
     
    遍历
    foreach (DictionaryEntry d in a) {
    Console.WriteLine(" " + d.Key+" "+d.Value);
    }
     
    Clear
    移除所有元素
     
    Remove
    删除指定的key
     
    查找
    可以使用Contains方法 ContainsKey ContainsValue 方法。
     
    Contains
    确定hashtable里面是否有特定的key
    Console.WriteLine(a.Contains("name"));
     
    ContainsValue
    是否包含指定的值
    Console.WriteLine(a.ContainsValue("tm"));
     
     
     
     
     
     
     
     

  • 相关阅读:
    利用python做矩阵的简单运算(行列式、特征值、特征向量等的求解)
    numpy.linalg.svd函数
    梯度裁剪(Clipping Gradient):torch.nn.utils.clip_grad_norm
    tf.matmul()报错expected scalar type Float but found Double
    1283 最小周长
    1182 完美字符串
    1091 线段的重叠
    1090 3个数和为0
    1087 1 10 100 1000
    1083 矩阵取数问题
  • 原文地址:https://www.cnblogs.com/gwyy/p/8028858.html
Copyright © 2011-2022 走看看