首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用基于向量的Stack实现而不是链表的动机是什么?

在Java中使用基于向量的Stack实现而不是链表的动机是什么?
EN

Stack Overflow用户
提问于 2012-07-07 03:10:16
回答 2查看 224关注 0票数 2

在Java语言中使用基于VectorStack实现而不是链表实现的动机是什么?我意识到Vector是同步的,并且具有继承优势(和开销),但我觉得不仅这些数据结构通常在文本中是基于链表的结构,而且LL避免了在填充底层数组时代价高昂的大小调整。

我确实理解,使用摊销分析,即使使用大小,Vectors也是O(1)。因此,也许考虑到这一点并没有太大的不同,但我仍然很好奇地想了解其中的原理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-07 03:14:18

链表有以下缺点:

由于必须遵循从元素到元素的指针/引用而导致的

  • 每元素存储overhead
  • Computational复杂性
  • 缓存位置不佳

当然,这些只是链表的一般缺点;我不知道它们是否影响了QueueStack的基础决策。

票数 6
EN

Stack Overflow用户

发布于 2012-07-07 03:13:44

向量将其数据存储在连续的内存中。这对缓存很有好处。

链表在内存中可能会变得非常零碎。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11368299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档