- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为什么 ArrayList
通常不实现为双端的,这将支持在前面和后面的快速分摊插入?
使用后者比使用前者有缺点吗?
(我不只是在谈论 Java——我还没有看到双端数组列表是任何其他语言的默认设置,但 Java 在这里只是一个很好的例子。)
*编辑:我最初称它们为“array deques”,但这是我的误解;我不是在谈论队列,而是双端数组列表。
最佳答案
ArrayList 很简单;条目从 0 开始,您可以在末尾添加内容(这可能会延长数组),但列表中的条目 #X 始终是 backing_array[X]
。
ArrayDeque 会更复杂;除了必须跟踪序列的开始(因为它不再保证从 0 开始,除非你想要 O(N) 移位/取消移位),你还必须担心另一端是“空的”。这种额外的复杂性是有代价的;在更常见的情况下(列表),RTL 仍然必须在双端队列中执行所有必要的检查和索引数学运算,无缘无故地减慢应用程序。条目 #X 变为 backing_array[start+X]
,边界检查也有额外的数学运算。
因此,除非您确实需要双端队列功能,否则坚持使用列表会更简单、更有效,至少在您处理数组时是这样。
关于java - 为什么典型的 Array List 实现不是双端的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147618/
有什么方法可以使用常用工具(ffmpeg?mplayer/mencoder?mkvmerge?等)来查找关键帧在给定视频文件中出现的频率? {从而找到最小搜索大小?}这似乎是一个显而易见的统计数据,“
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 2 年前。 Improve
我正在阅读Intel的SSD产品specification。那里有一张桌子说 Latency (typical) read/write < 10 us 但是没有更多细节可以解释这个数字。有人知道“典型
出于好奇:典型的 Linux 发行版中最古老的代码/包是什么?电子书?海湾合作委员会? 最佳答案 Sun RPC 很老了,它在 C 库中: http://blogs.oracle.com/webmin
一个常见的假设是 1/x * x == 1。在符合 IEEE 754 标准的常见硬件上打破这个的最小正整数是多少? 当乘法逆的假设失败时,写得不好的有理算术就会停止工作。由于包括 C 和 C++ 在内
流行手机型号支持的典型触摸点数量是多少?我在基础研究中看到低至 2 和高至 5,但我希望能够将其映射到实际手机和更好的限制! 最佳答案 两部手机的触控点数据: Galaxy S 5 LG
我讨厌讨厌IE!既然我已经咆哮了,我确实需要一些帮助。我这里有这个网站。 http://pearsonlyle.uwpistol.net/galleries/susie-theodorou/edito
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
作为来自企业 IT 的 Node.js 初学者,我无法理解 Node.js 用法的某一方面。我将我的问题分为两部分。 问题 1) 严格从可扩展性的角度来看,I/O 密集型 Web 应用程序如何使用 N
我希望我的问题是合法的......我问这个问题是因为在阅读了许多博客,玩了许多示例应用程序和官方 API 1 周后,我仍然很困惑,从哪里开始编码...... 总的来说,就浏览器之间的系统架构而言 W
这是我的汽车类(class): public class Car { private int FGNr; private String name; private String type; priva
我认为我的问题标题清楚地表达了我需要的信息的本质。我用谷歌搜索了 where is the "applies to list" in vba excel以及其中的一些变体,都带有如图所示的引号,这应该
我是一名优秀的程序员,十分优秀!