zoukankan      html  css  js  c++  java
  • Arraylist和Map哪个性能更好

    如果ArrayList 和Map存储的元素都比较多。那么在取元素方面,ArrayList要慢很多。
    但是这也不是绝对的,因为ArrayList底层基于数组,如果你明确的知道你要取的元素在哪个下标上,那么ArrayList也是相当的快。但是如果你不清楚,只能通过迭代内部全部元素然后进行条件判断查找,那么ArrayList就要慢的多,因为他要从头到尾一个个的元素去查,直到找到满足你的要求的那个元素,而Map则不需要迭代,因为Map有键,直接取键对应的值。

    对于添加元素,ArrayList是在数组的结尾追加,当容量不够时,创建一个新的更长的数组然后将旧的全部拷贝过来。Map和他的方式差不多,也是容量不足的时候需要重新创建新的然后拷贝,但是当发生删除元素时,ArrayList简直就是灾难。假设你有10000个元素,你删除首个元素,在删除完毕以后 ArrayList中的所有元素都必须进行一次移动操作,向前位移。。。而Map则不需要。

    大概就是这样,如果你考虑一个长度比较可预测的保存元素的集合,并且很少有删除操作,大部分是进行全部迭代的操作,那么用ArrayList会比较合适。
    如果你的List还要经常增删,那么用LinkedList比较合适。
    如果你要快速查找,取值,用HashMap比较合适。
    如果同时要保证,元素放进去的顺序和取出来的顺序一致用LinkedHashMap
    ————————————————
    版权声明:本文为CSDN博主「孤单品尝寂寞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u011134399/article/details/79353817

     
  • 相关阅读:
    文艺青年会看这本《迷局》么?
    看文艺青年怎么玩微信客户端
    Sublime Text有哪些使用技巧(转)
    C++ 关键字 explicit, export, mutable
    move语义和右值引用
    C++11 std::function用法
    function adapter(函数适配器)和迭代器适配器
    for_each()的返回值
    C++11的一些新特性
    setw和setfill控制输出间隔
  • 原文地址:https://www.cnblogs.com/EveningWind/p/14510865.html
Copyright © 2011-2022 走看看