欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ArrayList、HashTable、List、Dictionary和数组的区别

程序员文章站 2022-06-11 10:35:58
...

        最先接触的是数组,那就先从数组入手。

        数组 :是有序的元素序列。(若将有限个类型相同的变量的集合命名,那么这个名就称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 用于区分数组的各个元素的数字编号称为下标

        数组;的四种声明方式: 

int[]nums1= new int[3]; //1

int[]nums2= new int[]{1,2.3}; //2

int[]nums3= new int[3]{1,2.3}; //3

int[]nums4= {1,2.3}; //4

        集合长度可变,且具有很多方法的数组” 。不限长度,解决了数组的不灵活性.

      数组与集合:

  1. 数组声明了元素的类型,集合不声明
  2. 数组是静态的,有固定大小,创建了就无法改变容量,而集合是动态扩展容量,可以根据需要改变大小.
  3. 数组存放类型只能是一种,集合可以不是一种
  4. 数组易于存放与查找

       集合中最近接触了ArrayList、HashTable、List、Dictionary,其中List和Dictionary是泛型集合类,而ArrayList和HashTable是非泛型集合类。

      (百度搜索)泛型集合属于一种弱类型的集合·也就是说无法在应用程序编译期间得到检查,可以在添加对象的过程中都可进行操作,但是在遍历(foreach)操作中可能会牵扯到数据类型的转换,在不同类型转换的时候可能会出现类型转换的异常,也就是说,在遍历是尽量先进行一次类型的强制转换。非泛型集合属于一种强类型的集合,也就是在编译期间进行检查,比如在List<string>表明在集合中存储string字符串的类型,一旦输入其他类型的数据,那么在编译期间就会出现错误。

         ArrayList常用方法

         1) add,addrange,insert(某个下标的位置上插入一个值),clear(清空),contains(判断这个集合中是否包含了这个元素)

          2)count(判断集合中的个数),indexof(找某一元素对应的索引),insertRange(某个索引位置插入添加一个数组)

l         3)astindexof (招最后一个索引),

          4)Remove(移除),RemoveAt(移除索引对应的值),RemoveRange(从指定索引出开始移除,移除多少个,如果超出索引值报异常)。Reverse(反转),sort(排序),toarray(赋值到另外一个数据名)

         HashTable常用方法:以键值对的形式存储,  key---键   value---值hashtable<key,value>

         List   (list用法和属性参照以下链接:   表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。

        1)Count 属性,用于获取数组中当前元素数量

        2)Add( ) 在List中添加一个对象的公有方法

   3)AddRange( ) 公有方法,在List尾部添加实现了ICollection接口的多个元素

        4)Contains( ) 测试一个元素是否在List内

        5)Remove( ) 移除与指定元素匹配的第一个元素\RemoveAt( ) 移除指定索引的元素\RemoveRange( ) 移除指定范围的元素

  6)Reverse( ) 反转List内元素的顺序\Sort( ) 对List内的元素进行排序

         Dictionary(dictionary属性和方法参照此链接):表示键和值的集合。Dictionary遍历输出的顺序,就是加入的顺序,这点与Hashtable不同 

       1)Count        获取包含在 Dictionary<TKey, TValue> 中的键/值对的数目。
       2)Item         获取或设置与指定的键相关联的值。
       3)Keys         获取包含 Dictionary<TKey, TValue> 中的键的集合。
       4)Values       获取包含 Dictionary<TKey, TValue> 中的值的集合。

ArrayList、HashTable、List、Dictionary和数组的区别