博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中集合ArrayList与Hashtable的使用
阅读量:5072 次
发布时间:2019-06-12

本文共 2127 字,大约阅读时间需要 7 分钟。

 

http://blog.csdn.net/linukey/article/details/42506819

ArrayList:

一.

注意事项:

1.可以指定ArrayList集合的初始大小

  var list = new ArrayList(10);//容纳10个元素

 若不指定大小,则默认大小为0,添加一个后为4,然后以倍数递增。

2.ArrayList是Array的复杂版本,ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。

3.内部的Object类型的影响 : 对于一般的引用类型来说,这部分的影响不是很大,但是对于值类型来说,往ArrayList里面添加和修改元素,都会引起装箱和拆箱的操作,频繁的操作可能会影响一部分效率。此时应该用泛型类替代ArrayList。

4.数组扩容 :这是对ArrayList效率影响比较大的一个因素。  每当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果不够,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。

5.频繁的调用IndexOf、Contains等方法(Sort、BinarySearch等方法经过优化,不在此列)引起的效率损失,首先,我们要明确一点,ArrayList是动态数组,它不包括通过Key或者Value快速访问的算法,所以实际上调用IndexOf、Contains等方法是执行的简单的循环来查找元素,所以频繁的调用此类方法并不比你自己写循环并且稍作优化来的快,如果有这方面的要求,建议使用Hashtable或SortedList等键值对的集合。

二:

属性及方法

属性:

1.Count:目前ArrayList包含的元素的数量,这个属性是只读的。

2.Capacity:目前ArrayList能够包含的最大数量,可以手动的设置 这个属性,但是当设置为小于Count值的时候会引发一个异常。

方法:

1.Int Add(object value);

 用于添加一个元素到当前列表的末尾。

2.Int AddRange(object value);

 用于添加一个集合或数组到当前列表的末尾。

3.void Remove(object obj);

 用于删除一个元素,通过元素本身的引用来删除。

4.void RemoveAt(int index); 

 用于删除一个元素,通过索引值来删除。

5.void RemoveRange(int index, int count);

 用于删除一个集合或数组,通过指定开始的索引和删除的数量来删除。

6.void Insert(int index, object value)

 用于添加一个元素到制定位置,列表后面的元素依次往后移动。

7.void InsetRange(int index, Icollection collec)

 用于从指定位置添加一个集合或数组

8.void Sort()

 对集合中的元素进行排序

9.void Reverse();

 将ArrayList或它的一vufenzhong元素的顺序反转

10. Int IndexOf(object);

Int IndexOf(object, int);

Int IndexOf(object, int, int);

 返回ArrayList或它的一部分中某个值的第一个匹配项的从零开始的索引。没有找到返回-1。

11.Int LastIndexOf(object)

  Int LastIndexOf(object, int)

  Int LastIndexOf(object, int, int)

 返回ArrayList或它的一部分中某个值得最后一个匹配项的从零开始的索引。没找到返回-1

12.void TrimSize()

 用于将ArrayList固定到实际元素的大小,当动态数组元素确定不再添加的时候,可以调用这个方法来释放空余的内存

13.void Clear()

 清空ArrayList中的所有元素

14.Array ToArray()

 这个方法把ArrayList中的元素copy到一个新的数组中

 

Hashtable

常用方法:

1.在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);  

2.在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);  

3.从哈希表中移除所有元素:          HashtableObject.Clear();   

4.判断哈希表是否包含特定键key:     HashtableObject.Contains(key);

转载于:https://www.cnblogs.com/sky20080101/p/6820879.html

你可能感兴趣的文章
jsonp的理解
查看>>
业界水平这么烂吗?
查看>>
android studio 快捷键
查看>>
redis之如何配置jedisPool参数
查看>>
数据结构 一元多项式的加法与乘法
查看>>
百分比与小数的转换
查看>>
SQL优化:对报表生成工具的改进
查看>>
fedora18安装N卡官网驱动
查看>>
使用Dynamics 365 CE Web API查询数据加点料及选项集字段常用查询
查看>>
angular 的ng-view,ngrouter
查看>>
第一次使用博客园
查看>>
Python基础篇【第四篇】:循环语句
查看>>
POJ 2253 Frogger(Dijkstra)
查看>>
contest10 CF544 div2 + ZOJ3705 oooxxo ooooxo ooooxo
查看>>
HTML5 WebSocket
查看>>
android区分模拟器和真机
查看>>
The Swiss Army Knife of Data Structures … in C#
查看>>
android背景选择器selector用法汇总
查看>>
gdb使用笔记 2015-04-11 19:55 32人阅读 评论(0) 收藏...
查看>>
leetCode(23):Binary Tree Zigzag Level Order Traversal ...
查看>>