数组和链表的区别
线性表是最基本也是我们用的最多数据结构,它的存储方式有两种:顺序存储和链式存储。
顺序存储存放在一块连续的内存块中,查找速度快,存放前长度必须固定,所以动态添加和删除较难;
链式存储由数据和指针两部分组成存放在内存中是不连续的,指针指向下一个数据地址,查找只能通过遍历比较慢,长度不是固定的,所以动态添加和删除简单。
数组是顺序存储的一种表现形式,链表是链式存储的一种表现形式。
.Net中array属于顺序存储arraylist,list,hashtable,hastset属于链表。
arraylist不是类型安全的内部是object类型,不是线程安全的不支持同步。
list,hashset不是线程安全的,hasttable是线程安全的。
arraylist和list和hastset都是存放单列的值并且hastset值不能有重复。
hasttable存放双列值也就是键值对,键不能重复,值可以重复。
.net中数组是引用类型存放在堆中,这几种类型都继承IEnumerable接口。