当前位置:  开发笔记 > 编程语言 > 正文

LinkedList vs ArrayList在特定的android示例上

如何解决《LinkedListvsArrayList在特定的android示例上》经验,为你挑选了1个好方法。

我从A班上返回一份清单.我想从列表中删除第一个元素,并将其作为最后一个元素添加到同一列表中.我是这样做的.

myList.add(myList.get(0));
myList.remove(0);

目标硬件是Android OS.我应该A以一种它返回的方式编写我的类ArrayList,或者LinkedList?哪种情况对以下情况更好:

    myList总是有100个元素

    myList总是有10个元素

也许我看到一个没有问题的问题.你认为在这种情况下我不应该关心性能,因为问题的大小(对于1和2都很小)?

我知道"过早优化是万恶之源"的说法.这就是为什么我在改变我的实现之前犹豫不决(现在,我的A对象返回一个ArrayList).



1> thodorisbais..:

LinkedList如果你经常添加/删除/更新元素,你应该采用简短的答案,特别是对于第一个/最后一个元素的情况,因为它包含指向第一个和最后一个节点的指针

长答案 LinkedList添加方法提供O(1)性能,而ArrayList O(n)在最坏的情况下给出. LinkedList是比较快的.它只会引用节点,因此第一个节点消失:


另外,ArrayList对于一次写入多次读取或追加者来说是好的,但是从前面或中间添加/删除是不好的.

在此输入图像描述

例如,从链表中删除元素会产生成本O(1),同时对数组(数组列表)成本也是如此O(n).

但是,这并不总是一个规则,正如bigoh帖子所述:

Big-oh表示法可以提供关于大量数据的性能的非常好的想法,但唯一真正知道的方法是实际尝试使用大型数据集.可能存在性能问题,这些问题没有被大写符号考虑,例如,随着虚拟内存使用量的增长,对分页的影响也会增加.虽然基准测试更好,但在设计过程中它们并不可行,因此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

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有