从堆栈读取最后一个值(java)
我为存储值创建了堆栈,如下所示。我需要从堆栈中读取最后一个值,而不使用“stack.pop”从堆栈读取最后一个值(java),java,stack,netbeans-7,Java,Stack,Netbeans 7,我为存储值创建了堆栈,如下所示。我需要从堆栈中读取最后一个值,而不使用“stack.pop” 类Stack扩展了类Vector,该类有一个lastElement()和firstElement()方法,该方法将返回集合中的最后一个元素 在做了一个测试之后,我可以确认堆栈的顶部(推入的最后一个元素)是最后一个元素,堆栈的底部是第一个元素。还要注意,如果需要这样的访问,它可能表示您需要与堆栈不同的数据结构,但这取决于上下文。无论如何,Vector允许随机访问 如果您只需要此定义中的最后一个元素而不弹出
类
Stack
扩展了类Vector
,该类有一个lastElement()
和firstElement()
方法,该方法将返回集合中的最后一个元素
在做了一个测试之后,我可以确认堆栈的顶部(推入的最后一个元素)是最后一个元素,堆栈的底部是第一个元素。还要注意,如果需要这样的访问,它可能表示您需要与堆栈不同的数据结构,但这取决于上下文。无论如何,Vector允许随机访问
如果您只需要此定义中的最后一个元素而不弹出它,那么使用Elliott在其评论中建议的
peek()
将是合适的方法。stack.peek()
?请提供更多上下文。为什么您需要在不使用“stack.pop”的情况下读取堆栈中的最后一个值?@Arkadiy我不认为解释为什么是问一个有明确答案的问题的必要条件。@G_H哦,我不确定OP问的是什么;这就是为什么我做了一个注释。stack.peek()和stack.lastElement()都是正确的。必须记住,stack不允许随机元素访问。因此,通过一些API这样做是不道德的。这就是我们拥有如此庞大的数据结构家族的原因。
import java.util.Stack;
Stack stack = new Stack();
stack.push("Something");
stack.push("Something new");