Метод String Peek () в стеке в Java - PullRequest
0 голосов
/ 26 марта 2012

Я делаю стек строкового типа в Java и хочу узнать, как работает метод peek, пожалуйста.Это мой взгляд, но тип int:

public int Peek()
{
   NodoOperaciones nodo;
   int dato;
   nodo = getCabeza();
   dato = nodo.getData();
   return dato;
}

, и если я изменяю int на String, это вызывает исключение Null Pointer.Спасибо.

Ответы [ 3 ]

1 голос
/ 26 марта 2012

выдает его из строки dato = nodo.getData ()

В этом случае nodo.getData() возвращает ноль. Для String вы можете иметь значение null, поэтому оно не будет выдавать исключение, но для типа int вы не можете иметь значение null.

0 голосов
/ 26 марта 2012

как насчет использования стандартного java.util.Stack? в нем уже реализован метод peek (), и нет необходимости снова изобретать велосипед.

Это будет выглядеть так:

    Stack<String> stack = new Stack<String>();
    stack.push("hello");
    System.out.println(stack.peek()); // result = hello

В этой ситуации в стеке все еще есть элемент "hello".

0 голосов
/ 26 марта 2012

Метод getCabeza () возвращает ноль.И без проверки NULL, вы делаете nodo.getData ().В этот момент исключение NPE выброшено.Это произойдет в случае String, но если у вас есть тип примитива int, для него не может быть null, по умолчанию int всегда 0.

...