我正在用 Java 做一个字符串类型的堆栈,我想知道 peek 方法如何。这是我的窥视但 int 类型:
public int Peek()
{
NodoOperaciones nodo;
int dato;
nodo = getCabeza();
dato = nodo.getData();
return dato;
}
如果我将 int 更改为 String 它会抛出一个空指针异常。谢谢。
它从 dato=nodo.getData() 行中抛出它
在这种情况下nodo.getData()
返回 null。对于 aString
你可以有 null,所以它不会抛出异常,但是int
你不能有 null 的类型。
使用标准 java.util.Stack 怎么样?它已经实现了 peek() 方法,无需再次发明自行车。
它看起来像这样:
Stack<String> stack = new Stack<String>();
stack.push("hello");
System.out.println(stack.peek()); // result = hello
在这种情况下,堆栈中仍然有元素“hello”。
getCabeza() 方法返回 null。如果没有 NULL 检查,您正在执行 nodo.getData()。此时抛出 NPE 异常。这将在 String 的情况下发生,但是当您具有 int 原始类型时,您不能为其设置 null,默认情况下 int 始终为 0。