zoukankan      html  css  js  c++  java
  • 常用集合类、接口及特点

    IEnumerator

    IEnumerator<T> 

    实现遍历的基本方法 :Current,MoveNext(),Reset()        

    IEnumerable

    IEnumerable<T> 

    最基础的所有集合都实现的可遍历接口,可以和IEnumerator接口合作

    ICollection

    ICollection<T>   

     无序的集合,包含集合的基本操作,Add(T),Remove(T),Clear(),Contains(),CopyTo

    IList

    IList<T>    

    有序的集合,因此增加了IndexOf(),Insert(int,T),和RemoveAt(int)
     ISet<T>       没有顺序,元素不可重复,有集合的交,并,去除等操作
     IDictionary    最基本的字典接口
     Array      就是T[]类型,只能存储相同类型的数据。由于有逆变和协变(即可以数组级别的类型转换),速度很快。固定大小。
    ArrayList        动态数组,可以在任意部位增加,删除元素,内部其实是由Array实现。在.NET 2.0之后由于新增List<T>,基本被deprecate了。包括ArrayList在内的集合一般容量(Capacity)都不固定,因此有TrimToSize方法压缩容量。
    List<T>        有序集合,最常见,用得最多,各种增删查改都有

    Stack

    Stack<T>

      后入先出(LIFO),数据结构的C#实现,有Peek():查看顶层元素,Push():入栈,Pop():出栈。

    Queue

    Queue<T>  

     先入先出(FIFO),数据结构队列的C#实现,有Peek(),Enqueue():入队,Dequeue():出队。
    Dictionary<Tkey,TValue>  用的最多的字典泛型
    HashTable    键值对形式,基于键的哈希值而组织,没有泛型,因此,现在一般用Dictionary<Tkey,TValue>代替
    HashSet<T>    无序集合,并且无法包含重复元素,速度快
    NameValueCollection   没有泛型,功能类似于Dictionary<string,string> ,但可以一个键对应多个值(Request.QueryString就是这个类型),一个键可以对应多个值,且以逗号分隔。取出的值为"value1,value2,...valueN"形式。
    KeyValuePair<Tkey,TValue> 一个键值对 
    LinkedList 数据结构链表的C#实现,有AddBefore(LinkedListNode<T>,T),AddAfter,Find(T)等方法

    SortedList

    SortedList

    有序键值对

    HashSet<T>

    实现了ISet接口,无序
    SortedSet<T> 实现了Iset接口,有序



         * 除了Array外,ArrayList和各种集合类型都是动态分布容量(Capacity)的,可以根据TrimToSize方法压缩容量。

  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/Benjamin/p/3297163.html
Copyright © 2011-2022 走看看