问题标签 [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 - 为什么 Deque (ArrayDeque) 容量是 2 的幂?
在 Java 中(但在 PHP 中类似),ArrayDeque
实现的容量总是 2 的幂:
因为HashMap
这个选择是明确的 - 基于修剪的 32 位散列具有均匀的元素分布。但是Deque
按顺序插入/删除元素。
此外,ArrayList
不会将其容量限制为 2 的幂,只需确保它至少是元素的数量。
那么,为什么Deque
实现需要它的容量是 2 的幂呢?
java - Java 8:ArrayDeque<>.poll 在并行环境中返回 null
我正在尝试维护多个线程之间的项目列表,每个线程一个(例如,每个线程一个套接字连接)。我将这个列表保存在一个ArrayDeque<>
. 我面临的问题ArrayDeque<>
是超过没有的项目。线程池中的线程数。
这是我的代码:
在我的代码中,我正在创建一个大小为 10 的工作窃取池,谁能告诉我为什么不。在这种情况下,元素的ArrayDeque<>
数量超过 10?
java - 哪种Java结构更好用?我需要良好的性能、非固定大小和易于克隆/复制
我想要一个性能良好的数据结构,它允许从一个结构轻松克隆/复制到另一个结构。我的流程如下所示:
- 取
list1
,满载物件。 - 遍历对象,从每个对象创建几个相同类型的对象,然后将它们添加到
list2
. - 从 中删除所有对象
list1
并将所有对象添加list2
到list1
. - 从 中删除所有对象
list2
。
在我使用的那一刻,我坚持选择一种数据结构,ArrayDeque
这不是很快。对象的数量不是固定的,所以数组可能不是一个好的选择。请问有什么建议吗?这是我的代码:
谢谢 !
java - 我试图在java中实现一个循环数组双端队列
到目前为止,这是我编写的代码,但测试一直失败,如果有人可以提供帮助,我可以提供测试文件。谢谢你!
要求是前面应该从位置 0 开始,后面应该从位置长度 -1 开始。
同样在空队列中,后方是逆时针到前方的一个位置,而在满队列中,后方是逆时针到前方的两个位置。
在我们的 Dequeue 实现中,没有计数变量来跟踪元素的数量。相反,为了区分满队列和空队列,我们绝不允许队列完全满。
一个完整的队列是一个在数组中只有一个空点的队列。这样我们就可以通过查看前后的相对位置来区分空队列和满队列。
java - Java ArrayDeque 删除和轮询方法错误
目前我正在编写 ArrayDeque 的实现。我正在研究 pollFirst、pollLast、removeFirst 和 removeLast 方法。我不完全确定我写的方法是否正确。我编写了一个驱动程序来测试这些方法,但我不确定输出是否正确。
驱动程序可以在这里找到:https ://pastebin.com/bH0D78jG
以下是以下方法:
民意调查:
投票最后:
删除优先
删除最后一个
我最关心的是方法以及它如何在 pollFirst 和 pollLast 之后输出数组。双端队列的每一端不应该有一个空值吗?
java - ArrayDeque: addLast(E) + removeLast() 会和 push(E) / pop() 一样吗?喜欢 addFirst(E) + removeFirst() 有什么好处吗?
ArrayDeque文档状态push(E)
与 相同addFirst(E)
,并且与pop()
相同removeFirst()
。
addLast(E)
我认为使用+removeLast()
对方法可以达到相同的效果。
- 那正确吗 ?
- 喜欢
addFirst(E)
+removeFirst()
有什么好处吗?
java - 我们可以用 ArrayDeque 替换 ArrayList 以获得更好的性能吗?
我正在阅读 Kathy sierra 的 OCP8 指南,发现一行内容如下:
“ArrayDeque 就像一个性能更好的 ArrayList”
现在我对在哪里使用ArrayList
和在哪里使用感到困惑ArrayDeque
。我也知道 ArrayDeque 的大小总是调整为 2 的幂。调整大小时,容量会翻倍,因此在某些情况下这可能会影响性能。但我想知道两者之间哪个更可取。非常感谢您的帮助。
java - 如何退出此功能?
我正在创建一个模拟纸牌游戏“战争”的 java 程序。请注意,我对编码很陌生。我的牌库里有 54 张牌,包括两张小丑。战争开始后,我的程序会进行无休止的战争,并继续将越来越多的牌添加到玩家的牌组中。谁能看到我错过了什么?这是我的播放功能:
然后这是我运行战争的功能:
我在这个类中还有一个函数可以初始化卡片组,我的打印语句显示它工作正常。我有单独的类来创建卡片、初始牌组和我的玩家。如果显示这些类会有所帮助,我可以发布更多代码的更新。先感谢您。
(编辑添加我的播放器类)
java - Java ArrayDeque 中的 pop() 和 remove() 有本质区别吗?
remove 和 pop 都从队列的前面删除并返回一个元素。如果队列为空,它们都会抛出异常。