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方法压缩容量。

  • 相关阅读:
    andorid UI事件 监听器
    12小时进制的时间输出的编辑代码
    Java运算符
    运算符的优先级
    UTF-8
    对ASCII的了解
    数组
    Java语法基础
    Java的跨平台
    指针的了解
  • 原文地址:https://www.cnblogs.com/Benjamin/p/3297163.html
Copyright © 2011-2022 走看看