java是如何实现堆栈的?

阿达什·库马尔

我不是问java中怎么实现stack,而是java中stack类是怎么实现的?它使用链表吗?如果是这样,那么如果我确切地知道我要处理多少个元素,使用数组模拟堆栈不是更好,它会比 java 实现堆栈类的方式更快吗?

特雷弗农X

根据https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html Stack 类是这样派生的:

 java.lang.Object
    java.util.AbstractCollection<E>
        java.util.AbstractList<E>
            java.util.Vector<E>
                java.util.Stack<E>

这意味着,堆栈不仅仅是一个列表(尽管它是一个)。它是一个向量。来自 Vector-class java-doc:

Vector 类实现了一个可增长的对象数组。像数组一样,它包含可以使用整数索引访问的组件。但是,Vector 的大小可以根据需要增加或缩小,以适应在创建 Vector 后添加和删除项目。

但还有更多:

从 Java 2 平台 v1.2 开始,该类经过改造以实现 List 接口,使其成为 Java Collections Framework 的成员。与新的集合实现不同,Vector 是同步的。

同步意味着效率的额外损失(但通常可以忽略)。

所以是的,如果您只需要“存储”功能,您可以使用数组和偏移量来提高效率。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何实现堆栈上堆栈?

来自分类Dev

Java:堆栈实现

来自分类Dev

如何使用Java 8 Stream实现堆栈迭代

来自分类Dev

如何在Java中使用HashMap实现堆栈?

来自分类Dev

如何使用Java 8 Stream实现堆栈迭代

来自分类Dev

如何实现堆栈向量?

来自分类Dev

java-如何在使用链表实现的堆栈中实现弹出操作?

来自分类Dev

在Java中使用数组实现堆栈

来自分类Dev

在Java中使用数组实现堆栈

来自分类Dev

OS如何实现或维护每个线程的堆栈?

来自分类Dev

通常如何实现队列和堆栈?

来自分类Dev

如何实现堆栈列表的擦除功能?

来自分类Dev

如何实现不重叠的div堆栈?

来自分类Dev

如何使用std :: vector实现堆栈?

来自分类Dev

堆栈实现期间的 java.lang.ArrayIndexOutOfBoundsException

来自分类Dev

具有堆栈实现和递归的河内塔 (Java)

来自分类Dev

如何实现导航堆栈中的View Controller的“拖动权以关闭”?

来自分类Dev

如何实现仅在堆栈上分配的字符串

来自分类Dev

如何在Android中实现自定义堆栈视图?

来自分类Dev

如何使用优先级队列实现堆栈?

来自分类Dev

如何在Dart中通过push和pop实现堆栈

来自分类Dev

如何实现具有两个堆栈的队列

来自分类Dev

s/360 程序集:如何实现调用堆栈

来自分类Dev

如何在 ti-basic 中实现低内存堆栈

来自分类Dev

如何使用均值堆栈在前端实现 findbyid

来自分类Dev

Java如何实现锁

来自分类Dev

使用堆栈实现撤消和重做功能。如何编辑堆栈而无需在Haskell中重新创建堆栈

来自分类Dev

实现多态堆栈的问题

来自分类Dev

堆栈实现-链表