• 常用集合类性能、优缺点比较


        我们将对 数组,Dictionary<>, HashTable,List<>,ArrayList 的性能和各自的优缺点做下比较?

        一维数组是一个线性表,相对于其他集合类效率最高,但是使用起来也相对最不方便;

        Dictionary<>泛型 是基于Hash算法的二维字典表,由于采用Hash算法,查找时间复杂度基本为O(1),相对于HashTable要快,因为使用泛型可以免去拆箱,装箱的操作;

        HashTable 也是基于Hash算法的二维表,由于其Key和Value 都是object类型,其对数据的存取需要装箱,拆箱的操作,在没有引入泛型概念的VS2003中使用比较广泛,现在推荐使用Dictionary<>取代HashTable;

        Dictionary<>泛型 HashTable 都是不定长的二维数组表,这意味着在不知道数组长度的情况下使用十分简单,并且具有许多方法,如ContainsKey,Add,Remove等,其检索数组的索引不再限于数组的数字索引,只要使用相应地Key的类型来索引就可以了,使用起来十分方便.
      
        至于List<> 泛型在VS2005种推荐取代 ArrayList,其原因也是ArrayList要对每个元素都要进行拆箱,装箱操作.
    List<> 和 ArrayList 如不经过排序处理,默认查找是使用顺序查找的,不如Hash 查找快,但其内置了很多方法,如排序等,是Dictionary<> 和 HashTable 无法实现的,所以为其创建所消耗的资源也是最多的.

        本文只是 简单的总结了上述几种常用集合类的特点,希望对大家用所帮助!

  • 相关阅读:
    第七天 安卓 4大组件
    第六天 页面跳转和数据传递
    第五天 断点续传和下载
    objective-c里的protocol
    Cocos2d-x的屏幕适配
    CocosBuilder的Inspector及让Text View实时更新内容+binding控件到基类成员
    几个输出注意点
    Xcode
    Category、Extension
    iOS内存管理
  • 原文地址:https://www.cnblogs.com/eoiioe/p/1140806.html
Copyright © 2020-2023  润新知