LinkedList与ArrayList在特定的Android示例上

这个问题在这里已经有了答案:

  • 何时通过ArrayList使用LinkedList? 28个答案

  • 简短的回答你应该去LinkedList如果添加/删除/更新元素的频繁,特别是对第一个/最后一个元素的情况下,因为它包含一个指向第一个和最后一个节点

    长答案 LinkedList add方法给出O(1)性能,而ArrayList在最坏情况下给出O(n)LinkedList速度更快。 它只会引用节点,所以第一个消失:


    另外, ArrayList适用于一次写入或多次写入,但在前端或中间添加/删除时不好。

    在这里输入图像描述

    例如,从链表中移除元素需要O(1) ,而对数组(数组列表)则需要O(n)

    但是 ,这并不总是一个规则,正如bigoh发布的那样:

    大哦表示法可以为大量数据的性能提供非常好的想法,但唯一真正知道的真正方法是实际尝试使用大数据集。 可能存在性能问题,这些问题不会被大哦表示法考虑在内,例如,随着虚拟内存使用量的增长,对分页的影响。 虽然基准测试更好,但在设计过程中不可行,因此Big-Oh复杂性分析是您的选择。

    以上是验证与这篇文章,其中LinkedList也证明缓慢。

    最后,为了进一步/将来的参考,请根据javaconceptoftheday.com,看看它们的用例比较: 在这里输入图像描述

    参考
    http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

    链接地址: http://www.djcxy.com/p/19969.html

    上一篇: LinkedList vs ArrayList on a specific android example

    下一篇: When would you use a java.util.LinkedList