Criei a classe Celula :
package model;
public class Celula {
private Celula proxima;
private Celula anterior;
private Object elemento;
public Celula(Celula proxima, Object elemento) {
this.proxima = proxima;
this.elemento = elemento;
}
public Celula(Object elemento) {
this.elemento = elemento;
}
public void setProxima(Celula proxima) {
this.proxima = proxima;
}
public Celula getProxima() {
return proxima;
}
public void setAnterior(Celula anterior) {
this.anterior = anterior;
}
public Celula getAnterior() {
return anterior;
}
public Object getElemento() {
return elemento;
}
public void setElemento(Object elemento) {
this.elemento = elemento;
}
}
Criei tmb a classe ListaLigada:
public class ListaLigada {
private Celula primeira;
private Celula ultima;
private int totalDeElementos;
public Celula getPrimeira() {
return primeira;
}
public void setPrimeira(Celula primeira) {
this.primeira = primeira;
}
public Celula getUltima() {
return ultima;
}
public void setUltima(Celula ultima) {
this.ultima = ultima;
}
public int getTotalDeElementos() {
return totalDeElementos;
}
public void setTotalDeElementos(int totalDeElementos) {
this.totalDeElementos = totalDeElementos;
}
public void adicionaNoFim(Object elemento) {
if (this.totalDeElementos == 0) {
this.adicionaNoComeco(elemento);
} else {
Celula nova = new Celula(elemento);
this.ultima.setProxima(nova);
nova.setAnterior(this.ultima);
this.ultima = nova;
this.totalDeElementos++;
}
}
private boolean posicaoOcupada(int posicao){
return posicao >= 0 && posicao < this.totalDeElementos;
}
public void adicionaNoComeco(Object elemento) {
if(this.totalDeElementos == 0){
Celula nova = new Celula(elemento);
this.primeira = nova;
this.ultima = nova;
} else {
Celula nova = new Celula(this.primeira, elemento);
this.primeira.setAnterior(nova);
this.primeira = nova;
}
this.totalDeElementos++;
}
public void removeDoComeco() {
if (!this.posicaoOcupada(0)) {
throw new IllegalArgumentException("Lista Vazia!");
}
this.primeira = this.primeira.getProxima();
this.totalDeElementos--;
if (this.totalDeElementos == 0) {
this.ultima = null;
}
}
public void removeDoFim() {
if (!this.posicaoOcupada(this.totalDeElementos - 1)) {
throw new IllegalArgumentException("Lista Vazia!");
}
if (this.totalDeElementos == 1) {
this.removeDoComeco();
} else {
Celula penultima = this.ultima.getAnterior();
penultima.setProxima(null);
this.ultima = penultima;
this.totalDeElementos--;
}
}
public void imprime() {
Celula aux = new Celula(null);
for(aux = this.primeira; aux != this.ultima.getProxima(); aux = aux.getProxima()) {
System.out.print(aux.getElemento() + " ");
}
System.out.println("");
}
}
E criei a classe pessoa (que é oque quero incluir na lista) :
package model;
public class Pessoa {
private String nome;
private String cpf;
private int idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
Como faço pra imprimir os atributos de uma Pessoa inserida em uma ListaLigada ???