public void adicionaQualquerPosicao(int posicao, Object elemento) { if (posicao == 0) { this.adicionaNoComeco(elemento); } else if (posicao == this.totalDeElementos) { this.adicionaNoFim(elemento); } else { Nodo anterior = this.pegaCelula(posicao - 1); Nodo nova = new Nodo(anterior.getProxima(), elemento); anterior.setProxima(nova); this.totalDeElementos++; } }
public void removeDoFim() { if (!this.posicaoOcupada(this.totalDeElementos - 1)) { throw new IllegalArgumentException("Posição não existe"); } if (this.totalDeElementos == 1) { this.removeDoComeco(); } else { Nodo penultima = this.ultima.getAnterior(); penultima.setProxima(null); this.ultima = penultima; this.totalDeElementos--; } }
public void remove(int posicao) { if (!this.posicaoOcupada(posicao)) { throw new IllegalArgumentException("Posição não existe"); } if (posicao == 0) { this.removeDoComeco(); } else if (posicao == this.totalDeElementos - 1) { this.removeDoFim(); } else { Nodo anterior = this.pegaCelula(posicao - 1); Nodo atual = anterior.getProxima(); Nodo proxima = atual.getProxima(); anterior.setProxima(proxima); proxima.setAnterior(anterior); this.totalDeElementos--; } }