先来说说数组的不足(也可以说集合与数组的区别):(这是我看得别人的这段)
1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的.
2.数组要声明元素的类型,集合类的元素类型却是object.
3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。
4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问.
此次试验总结:
1.以键值对形式存在的:
HashTable,key必须唯一,不唯一异常
NameValueCollection,key可以不唯一,则通过key得到和这个key关联的所有value
SortedList,key唯一,但是重复插入相同key,old value被new value覆盖,也就是降频的key唯一
以单object形式存在的:Arraylist,Queue,Stack
2.支持下标访问的:
HashTable[key],得到key对应的value
NameValueCollection[ksy],得到key对应的values们
SortedList[ksy],得到key对应的value
支持索引下标访问的:
Arraylist[i],得到i位置的object ,下标越界出异常
不支持下标访问的:
Queue,Stack
测试代码:
1
}
1
}
1
}
1
}
1
}
1
}
另外对于hashtable认识还不够,hashtable为什么好?objet.GetHasCode()怎么生成的阿?谁给讲讲。