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>

    

  呃,所以哈希表怎么遍历呢……

  

  

 

  

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!