java.util.Stack 和 java.util.ArrayDeque 中的增长方法之间的区别

问题描述

我遇到了当堆栈已满时的grow() 方法,但是当我看到arraydeque 中的grow() 函数有区别时,我想知道区别究竟是什么。

有人知道答案吗?

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

解决方法

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

堆栈可增长:

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

Arraydeque 可增长:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...