gpt4 book ai didi

java - ArrayDeque 比堆栈快多少?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:07:14 24 4
gpt4 key购买 nike

根据javadoc,

ArrayDeque class is likely to be faster than Stack when used as a stack

我不明白 ArrayDeque 怎么会比 stack 快。假设栈是使用链表实现的,如下:

Push: Insert new element at the head, teamp->next = head; head = temp 
(where temp is the element to be inserted)
Pop: Remove the element from head, and make head = head->next

对于大量元素,ArrayDeque 会产生调整大小的开销,这在使用 LinkedList 实现的 Stack 中不会出现这种情况。那么 ArrayDeque 究竟比堆栈快多少呢?

最佳答案

ArrayDeque 是 Java Collections Framework 的一部分,并不是为线程安全而编写的。

Stack 与 Vector 和 Hashtable 一起出现在 Java 1.0 中,并通过线程安全操作实现(因为这在当时似乎是个好主意)。获取和释放线程锁在时间上相对昂贵,因此这些数据结构将比它们在 JCF 中的同胞慢得多。

关于java - ArrayDeque 比堆栈快多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23908511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com