首页 > 其他 > 详细

浅析几种数据集合(Dictionary、ArrayList、Hashtable和Array)的区别

时间:2014-03-14 17:49:16      阅读:443      评论:0      收藏:0      [点我收藏+]
数组 Array

数组是固定大小的,不能伸缩,要声明元素的类型。

数组可读可写不能声明只读数组;数组要有整数下标才能访问特定的元素

(强类型约束)

ArrayList:

数组的复杂版本,动态数组类型

数组可以多维,ArrayList只能是一维的,数组固定长度,ArrayList长度动态调整

ArrayList可以存储任意类型,因为它的元素属于object类型,但是由此带来的装箱拆箱会影响性能

方法

  1:Add()向数组中添加一个元素,

 2:Remove()删除数组中的一个元素

 3:RemoveAt(int i)删除数组中索引值为i的元素 

 4:Reverse()反转数组的元素 

 5:Sort()以从小到大的顺序排列数组的元素

 6:Clone()复制一个数组

使用:

ArrayList List = new ArrayList();
for( int i=0;i<10;i++ ) //给数组增加10个Int元素
List.Add(i); 
//..程序做一些处理
List.RemoveAt(5);//将第6个元素移除
for( int i=0;i<3;i++ ) //再增加3个元素
   List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组

List<> 泛型:

 

 

可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法 

bubuko.com,布布扣

泛型是强类型集合,所以是类型安全的,并且类型限制,使得避免了装箱拆箱操作,是性能提高

 

Hashtable(using System.collections)哈希表:

HashTable中的key/value均为object类型,所以HashTable可以支持任何类型的key/value键/值对。其中key必须是唯一的,没有有效的排序。提供快速查询;元素的存储于顺序无关(与Dictionary不同)

哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。 

应用场景:某些数据高频率的查询;大数据量;查询的字段数据类型不是整型、浮点型而是字符串类型

用法:

Hashtable ht = new Hashtable

ht.Add("key1","value1");

ht.Add("key1","value2");

ht.Contsins("key1");//判断key1键是否存在

ht.Contsinkey("key1")//同上

foreach(Object key in ht.Keys) //遍历key

{}

foreach(Object value in ht.Values)//遍历value

{}

foreach(DicrionaryEntry de in ht) //同时遍历键/值对,与dictionary相同

{

        Console.WriteLine(de.Key);

        Console.WriteLine(de.Value);

}

ht.Remove("key1");//移除key1键元素

ht.Clear();//清除所有元素

 

Dictionary(using System.Collections.Generic):

大规模写数据比hashtable快,二者的使用方法差不多,遍历Dictionary的输出是按照输入的顺序来输出。

bubuko.com,布布扣

 

浅析几种数据集合(Dictionary、ArrayList、Hashtable和Array)的区别,布布扣,bubuko.com

浅析几种数据集合(Dictionary、ArrayList、Hashtable和Array)的区别

原文:http://www.cnblogs.com/wanglao/p/3599878.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!