问题标签 [arraydeque]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ArrayDeque 如何比堆栈快?
根据javadoc,
当用作堆栈时,ArrayDeque 类可能比 Stack 更快
我不明白 ArrayDeque 怎么能比堆栈快。假设栈使用链表实现如下:
对于大量元素,ArrayDeque 会产生调整大小的开销,这在使用 LinkedList 实现的 Stack 中不会出现这种情况。那么 ArrayDeque 到底比栈快多少呢?
java - 为什么类 ArrayDeque 不从 AbstractQueue 扩展?
为什么类ArrayDeque定义为
而不是作为
如果您看下图(其中有错误,ArrayDeque 与 Set 的关系完全错误),那么 ArrayDeque 将从 AbstractQueue 继承是有道理的,因为它通过 Deque 接口间接实现了 Queue 接口。
(来源:academic.ru)
java - 使用 arraydeque 的生产者-消费者仅在断点处工作
我正在使用 ArrayDeque 实现生产者和消费者模式并遇到一个奇怪的问题。
由于 my_queue 是公开的,我可能有 > 1 个线程执行 my_queue.add(msg)。然而,奇怪的发生是因为 doSomething 在生产中运行时从未被调用。但是,当我处于调试模式并使用断点时,将调用 doSomething()!谁能解释一下?
java - ArrayDeque 类的 addFirst 方法
java.util.ArrayDeque 类中 addFirst 方法的代码是
在这里,我无法理解的含义
此外,假设数组大小为 10。head 为 0,tail 为 9(数组已满)。在这种情况下,将在什么索引系统上进行插入?(我的理解是:如果数组已满,则先增加其大小,然后在 arraySize()-1 索引中插入。)
java - java数组双端队列大小与性能
在我的 java 代码中,我怀疑 java.util.ArrayDeque 的大小正在影响性能,但我想在这里确认是否是这种情况。
在我的代码中,如果双端队列不为空,我将删除一个轨迹对象,并在新线程上启动一个模拟,直到 40 个模拟同时运行。在每次模拟结束时,有可能将更多轨迹添加到队列中。如果在所有模拟完成后仍有轨迹留在队列中,则该过程会自行重复。
我使用的操作是 remove()、add()、isEmpty(),以及从另一个类中获取 Deque。在计时每次迭代时,我发现对于 4421 个对象的 Deque 大小,它需要 7756 毫秒。而对于 103 个对象的 Deque 大小,则需要 43 毫秒。
java - ArrayDqueue 类的 add(E e) 和 offer(E e) 的区别
嗨,我使用 add 和 offer 在最后一步添加我的元素。两者都返回布尔值,并且除了 NPE 之外都不会抛出任何异常。
两者都将通过返回一个布尔值将元素添加到最后一个位置。
JAVA实现
java - ArrayDeque vs ArrayList 实现堆栈
的文档ArrayDeque
说:
这个类在作为栈使用时可能比 Stack 快,作为队列使用时比 LinkedList 快。
没有提到使用 anArrayDeque
作为堆栈和使用ArrayList
. 您可以将 anArrayList
用作堆栈,如下所示。
我发现当我ArrayList
只用这种方式时,它的性能比ArrayDeque
. 造成这种差异的原因是什么?当然,它不能只是调用size()
? 在内部,两者ArrayList
和ArrayDeque
都是Object[]
在需要时使用更大的数组替换的,所以性能肯定应该差不多吗?
java - 向 ArrayDeque 添加对象时遇到 NullPointerException
该类旨在保存一堆房间号(即酒店客人入住的房间)并允许检索最后入住的房间(LIFO)。
现在,我只想添加一个项目,但似乎不起作用。我可以为此使用堆栈,但我正在尝试使用 ArrayDeque(因为它应该更灵活?)。
无论如何,当执行提供整数作为参数的 addRoom() 方法时,ArrayDeque 在第 14 行抛出 NullPointerException,我使用 ArrayDeque 的addFirst()或add()方法。
我不明白当我明确提供整数值时,它怎么会抱怨整数为空。请协助。
c++ - 返回双端队列数组 C++
如何在 C++ 中返回双端队列数组?
//当然在实现该功能时给我一个错误-但是我应该把括号放在哪里?
java - 关于Java中ArrayDeque的实现
文档说:
Deque 接口的可调整大小的数组实现。数组双端队列没有容量限制;它们根据需要增长以支持使用
但是我仍然想了解 ArrayDeque 的结构到底是什么,调整大小是如何工作的。如果有人可以提供可靠的来源,我可以找到答案,那将是很棒的。根据我发现的一些谷歌结果,它可能实现为一个循环数组。这是真的吗?什么是增长政策?它类似于 ArrayList 吗?如果是,ArrayDeque 在最后添加或删除元素等操作上是否具有与 ArrayList 相似的性能?
谢谢你。