Tenho uma classe que implementa o conceito de lista duplamente encadeada e vou armazenar objetos e seus atributos dentro dela.
Que acessar os atributos destes objetos dentro da lista via get e set, mas estou tendo dificuldades.
As classe DNode e AnimalList estão corretas. Você deve está setando cópias dos objetos e não os objetos em si. Mostre como os objetos da lista estão sendo setados.
C
CarlosBR
publicclassTeste{publicstaticvoidmain(String[]args){AnimalListLISTA=newAnimalList();AnimalA=newAnimal("Cachorro");LISTA.insereFrente(A);AnimalB=newAnimal("Vaca");LISTA.insereFrente(B);// AQUI DA ERRO: LISTA.getFirst().setNome("Passaro");LISTA.mostraLista();}}
matheuslmota
Cara, tem um erro no seu método mostraLista.
public void mostraLista() {
DNode<Animal> current = head;
while (current != null) {
System.out.println(current.getElement()); // Aqui ele tenta chamar o método toString da classe Animal
current = current.getNext();
}
}
Você pode sobrescrever o método toString de Animal para retornar o nome:
@Override
public String toString() {
return name;
}
Acho que isso resolve seu problema.
C
CarlosBR
Ok.
Quanto a impressão dos valores na lista está funcionando.
O problema é setar um valor a um atributo de um objeto dentro da lista.
LISTA.getFirst().setNome("Passaro");
O código acima não compila ou não parece fazer sentido para o compilador.