Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 3 da Aula 5 - Pilhas

Quando executo o comando Print(pilha) que é um LinkedList ele imprime o endereço do ponteiro. Alguém Manja como fazer esse print automático com algum outro comando?

5 respostas
solução!

Oi Henrique,

pilha não é uma LinkedList, mas sim um objeto do tipo Pilha que tem uma LinkedList.

Vou supor que, quando você diz Print(pilha) você esteja relamente fazendo System.out.println(pilha), correto? Nesse caso, é natural que ele mostre o hashCode em hexadecimal do objeto -- em Java, não é um ponteiro. ;-)

Isso acontece porque, internamente, o println chama o método toString do objeto a ser impresso. E o comportamento desse método, como descrito na classe Object é de imprimir o tal hashCode em hexadecimal.

Para que ele imprima os dados da pilha, será necessário sobrescrever o método toString da classe Pilha:

@Override
public String toString() {
    return nomes.toString();
}

Vdd vajei... rsrs

Desculpe abusar da sua boa vontade mais achei que esse código fosse o endereço do objeto na memória... Você citar algum exemplo de utilidade desse hashCode?

Obrigado Cecilia!!!

Olá, Henrique.

Esse hash code é útil quando se lida com hash maps (ou hash tables), também conhecida em português como tabela de dispersão, que é uma estrutura de dados especial.

Tu podes ler a respeito aqui.

Valeu André!!

.