泛型集合、ArrayList集合、Hashtable集合

泛型集合、ArrayList集合、Hashtable集合(黑马程序员-集合、Hashtable、泛型集合及字典模式!_向日葵_新浪博客)
1、所有集合的方法大体概括为增删改查。
2、命名空间都是System.Collection,快捷方式是Alt+shift+F10.
3、集合和Hashtable相当于一个动态的数组,泛型集合和字典是这两个衍生出来的
前两者需要引入命名空间,后面两个不需要引入命名空间,所以将来用的时候,尽量用泛型集合和Dictionary!
泛型集合:    List     Dictionary   Queue   Stack   SortedList
非泛型集合:Arraylist  HashTable    Queue   Stack   SortedList
注意:以上是相互对应的。
一、ArrayList集合
ArrayList类对象被设计成为一个动态数组类型,其容量会随着需要而适当的扩充。
1、Add添加集合元素,AddRange添加数组中的每一个元素;
Insert插入,插入下标和插入元素,插入的时候要考虑索引和集合的长度,
2、删除某一个位子上的元素:RemoveAt();括号里面为元素下标;同样也不能超出索引范围;Remove会遍历集合元素,
直到找到第一个你要删除的元素,程序会执行;注意只会删除第一个出现的你要删除的元素,即使后面还有,不会删除。
3、(1)Add()向数组中添加一个元素,
   (2)Remove()删除数组中的一个元素 //这边注意一下和RemoveAt(int i)的区别
   (3)RemoveAt(int i)删除数组中索引值为i的元素
   (4)Reverse()反转数组的元素
   (5)Sort()以从小到大的顺序排列数组的元素
   (6)Clone()复制一个数组
4、通过Index下标来修改集 合元素;查,Contains()是否包含;.Clear清空集合元素,
5、zhxiyang.ToArray将集合转换成数组,用到强制类型转换!
6、foreach循环!var是集合中元素类型,item是临时变量,in是从集合中取出元素赋值给item临时变量,
直到不为空为止,这里用到了叠代的原理!

 

二、List(可通过索引访问的对象的强类型列表)
可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法,在决定使用 List 还是使用
ArrayList 类(两者具有类似的功能)时,记住 List 类在大多数情况下执行得更好并且是类型安全的。
 List<T>的用法和ArrayList相似,List<T>有更好的类型安全性,无须拆,装箱。
ArrayList和List的相同点:添加元素、删除元素、通过索引访问元素方法相同
ArrayList可以添加任意类型元素;List<T>对添加的元素具有类型约束;
ArratList添加时装箱,读取时拆箱;List<T>不需要装箱,拆箱操作;

 

三、Hashtable
简述:在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现
类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。
Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.

 

我们经常使用hashtable类来存储将要写入到数据库或者返回的信息,这样就会增加程序装箱和拆箱的问题。
1、Contains,ContainsKey,ContainsValue最后一个很少用到
2、还有两个比较重要的属性,Keys和Values,一般是用foreach遍历!
3、遍历hashtable,无法用for循环遍历,只能用foreach遍历。

 

4、在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
5、在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
6、从哈希表中移除所有元素:           HashtableObject.Clear();
判断哈希表是否包含特定键key:         HashtableObject.Contains(key);

四、Dictionary
Hashtable 和 Dictionary 类型
 1:单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.
 2:多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取,
 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary
 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.
 3:Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱),
 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便.
HashTable的应用场合有:做对象缓存,树递归算法的替代,和各种需提升效率的场合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值