Array
就是最最基本的数组,会有各种越界之类的问题
int[] array1=new int[] {};定义大概长这样
ArrayList
Array的vector版本,但是所有的元素类型都是对象,因此涉及到装箱拆箱以及类型不安全等问题
必须引入System.Collections
问题大概就是,装箱拆箱的性能损耗。以及元素都是对象带来的类型不安全吧。
List<T>
就是C++的vector<T>版本了
没有上述二者的问题
LinkedList<T>
适用于经常需要增减的数据类型。然后只需要知道节点的对应类型是LinkedListNode<T>就行了
Queue<T>与Stack<T>
没什么好介绍的,这个应该比较常见了
HashTable与Dictonary<T,T>
解决哈希冲突的哪几种方法,我也懒得写,是那种看起来比较复杂但是实际上用简单原理解释了的东西吧(大概)这里懒得介绍了
你只需要知道哈希表的KEY与VALUE类型都是object,然后识别key使用GetHashCode来实现的
Dictonary<T,T>基本可以看作是HashTable的泛型版本,但是其实字典处理哈希冲突用了链接技术,比哈希表遇到同样情况要高效
遍历字典的方法:
forech var in dict
使用dict.keys(对应的数组)
使用键值对类型KeyValuePair<T,T>
呃,所以哈希表怎么遍历呢……
- 还没有人评论,欢迎说说您的想法!