在Java语言中使用基于Vector的Stack实现而不是链表实现的动机是什么?我意识到Vector是同步的,并且具有继承优势(和开销),但我觉得不仅这些数据结构通常在文本中是基于链表的结构,而且LL避免了在填充底层数组时代价高昂的大小调整。
我确实理解,使用摊销分析,即使使用大小,Vectors也是O(1)。因此,也许考虑到这一点并没有太大的不同,但我仍然很好奇地想了解其中的原理。
发布于 2012-07-07 03:14:18
链表有以下缺点:
由于必须遵循从元素到元素的指针/引用而导致的
当然,这些只是链表的一般缺点;我不知道它们是否影响了Queue和Stack的基础决策。
发布于 2012-07-07 03:13:44
向量将其数据存储在连续的内存中。这对缓存很有好处。
链表在内存中可能会变得非常零碎。
https://stackoverflow.com/questions/11368299
复制相似问题