数组和链表的区别

线性表是最基本也是我们用的最多数据结构,它的存储方式有两种:顺序存储和链式存储。

顺序存储存放在一块连续的内存块中,查找速度快,存放前长度必须固定,所以动态添加和删除较难;

链式存储由数据和指针两部分组成存放在内存中是不连续的,指针指向下一个数据地址,查找只能通过遍历比较慢,长度不是固定的,所以动态添加和删除简单。

数组是顺序存储的一种表现形式,链表是链式存储的一种表现形式。

.Net中array属于顺序存储arraylist,list,hashtable,hastset属于链表。

arraylist不是类型安全的内部是object类型,不是线程安全的不支持同步。

list,hashset不是线程安全的,hasttable是线程安全的。

arraylist和list和hastset都是存放单列的值并且hastset值不能有重复。

hasttable存放双列值也就是键值对,键不能重复,值可以重复。

.net中数组是引用类型存放在堆中,这几种类型都继承IEnumerable接口。

 

posted @ 2016-08-24 09:31  杜俊强  阅读(1055)  评论(0编辑  收藏  举报