ArrayList、HashTable、List、Dictionary和数组的区别
最先接触的是数组,那就先从数组入手。
数组 :是有序的元素序列。(若将有限个类型相同的变量的集合命名,那么这个名就称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 用于区分数组的各个元素的数字编号称为下标。
数组;的四种声明方式:
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
集合长度可变,且具有很多方法的数组” 。不限长度,解决了数组的不灵活性.
数组与集合:
- 数组声明了元素的类型,集合不声明
- 数组是静态的,有固定大小,创建了就无法改变容量,而集合是动态扩展容量,可以根据需要改变大小.
- 数组存放类型只能是一种,集合可以不是一种
- 数组易于存放与查找
集合中最近接触了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> 中的值的集合。
推荐阅读
-
HashTable、HashSet和Dictionary的区别点总结
-
C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)
-
C#常见的几种集合 ArrayList,Hashtable,List
,Dictionary 遍历方法对比 -
Java中res.add(list)和res.add(new ArrayList<Integer>(list))的区别
-
C#介绍ArrayList和List的区别(第一篇内容博客 )
-
C# 中的集合(Array/ArrayList/List
/HashTable/Dictionary) -
C#中数组、ArrayList和List三者的区别详解及实例
-
C#中数组、ArrayList和List三者的区别
-
详解如何选择使用ArrayList、HashTable、List、Dictionary数组
-
C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解