首页 > 解决方案 > java.util.Stack 和 java.util.ArrayDeque 中的 grow() 方法之间的区别

问题描述

当堆栈已满时,我遇到了 grow() 方法,但是当我看到 arraydeque 中的 grow() 函数存在差异时,我想知道实际差异是什么。

有谁知道这个问题的答案?

if (s == elementData.length){
    elementData = this.grow()
}

标签: javastackarraydeque

解决方案


所以最终我发现差异如下:

堆栈可增长:

  1. 紧的策略:向旧堆栈添加一个常数(N+c)
  2. 增长策略:旧堆栈大小翻倍(2N)

Arraydeque 可增长:

“数组双端队列没有容量限制,它们会根据需要增长以支持使用。” 数组队列


推荐阅读