【发布时间】:2016-05-10 22:35:18
【问题描述】:
既然 Stacks 在内部使用 Linked Lists / Arrays,为什么 java 不直接将原始值存储在 Linked Lists / Arrays 而不是 Stacks 中?
【问题讨论】:
-
恐怕真的不清楚你在问什么。我怀疑您可能会混淆“堆栈”(与堆相比的内存区域)和“java.util.Stack”(Java 集合类)。
-
@JonSkeet:但两者都是一样的,对吧?两者都是 FILO。
-
任何类型的
Stack都是基于LIFO。 Stack 对push和pop操作有一些策略,保证堆栈为LIFO。在许多情况下,例如解析和计算带有括号的数学语句,堆栈非常有用,因为您无需担心推送和弹出业务的方式。 -
你提到
FILO先进后出与LIFO相同后进先出但LIFO更常见.如果您将Push和Pop操作留给您的代码并使用List之类的东西,您应该在您的代码中执行相同的操作。所以不要从头开始重新创建轮子。 -
就这些抽象术语而言,它们是相同的。在几乎所有其他方面,它们都非常非常不同。
标签: java memory memory-management data-structures stack