Só uma dúvida besta, mas eu odeio não entender alguma coisa e eu não vi lógica no seguinte:
Método para adicionar no fim de uma Lista ligada:
public void adiciona(Object elemento) {
if (this.totalDeElementos == 0) {
this.adicionaNoComeco(elemento);
} else {
Celula nova = new Celula(elemento);
this.ultima.setProxima(nova);
this.ultima = nova;
this.totalDeElementos++;
}
}
}
Estou seguindo a apostila da Caelum pra aprender estrutura de dados, mas não entendi porque dentro do else ele chama o this.ultima.setProxima(nova).
Se na próxima linha o this.ultima é referenciado com o endereço do objeto do nova, a chamada deste método não acabou sendo inútil? Ou eu que não entendi o propósito?
[quote=pedroroxd]o que o método setProxima faz?
posta esse void pra gente…[/quote]
setProxima neste caso atribui o nova a um atributo Celula proxima que fica dentro da classe Celula. Mais ou menos assim:
public class Celula {
private Celula proxima;
private Object elemento;
public void setProxima(Celula proxima) {
this.proxima = proxima;
...
}
Cara, ao escrever isso eu acho que entendi a coisa…
Eu acho que no atributo Celula proxima dentro do objeto Celula atual (que é o ultima) ele atribui nova, para dizer que o próximo elemento passar a ser esse nova. E aí depois ele referencia o this.ultima apontando para o objeto do nova.
O problema é o nome dos atributos que dificulta tudo na hora de explicar e de entender… o ultima é o nova que era o proxima que bla bla bla :lol: