Boa noite pessoas.
Estou fazendo um trabalho acadêmico, no qual preciso excluir um registro de uma agenda.
Para isso, estou fazendo o seguinte procedimento:
listaPessoas[posicao -1] = null;
Ok, isso limpa o registro da minha agenda, mas eu não consigo reaproveitar o “espaço” de agenda que foi excluído.
Tem alguma forma mais eficiente de limpar o registro para reutilizar essa posição de memória?
Obrigado.
Gustavo
Remover registro de classe
6 Respostas
List listaDeAlgumaCoisa = new ArrayList();
//popular a lista
listaDeAlgumaCoisa.add("teste0");
listaDeAlgumaCoisa.add("teste1");
listaDeAlgumaCoisa.add("teste2");
listaDeAlgumaCoisa.add("teste3");
listaDeAlgumaCoisa.add("teste4");
System.out.println(listaDeAlgumaCoisa.toString());
//remove o objeto native posicao 3 da lista
listaDeAlgumaCoisa.remove(3);
System.out.println(listaDeAlgumaCoisa.toString());
basicamente é isso
listaDeAlgumaCoisa.remove(indice);
Não é uma array, não tem o método remove.
é do tipo:
static Pessoa[] listaPessoas = new Pessoa[100];
listaPessoas[posicao -1] = null;
Não é uma array, não tem o método remove.
é do tipo:
static Pessoa[] listaPessoas =new Pessoa[100];listaPessoas[posicao -1] = null;
static Pessoa[] listaPessoas = new Pessoa[100];
listaPessoas[posicao -1] = null;
listaPessoas[posicao -1] = new Pessoa();//assim uai!
Bom dia asousaj .
Mesmo assim fica o registro vazio, pois não vou inserir o registro assim que excluí-lo.
Mas obrigado.
Gustavo então seria o seguinte.
Pra liberar vc já fez (colocou a variavel de referencia como null).
Quando for cadastrar um novo contato na agenda vc percorre o array(agenda) e utiliza a primeira posição que tiver com a variavel de referencia como null.
static Pessoa[] listaPessoas = new Pessoa[100];
listaPessoas[posicao -1] = null;
Esqueleto somente pra exemplificar
public void cadastrar(Pessoa[] listaPessoas){
for(Pessoa pessoa : listaPessoas){
if(pessoa == null){
pessoa = new Pessoa();
}
}
}
//outro modo
public void cadastrar(Pessoa[] listaPessoas){
for(int i =0 ; i<listaPessoas.length ; i++){
if(listaPessoas[i] == null){
listaPessoas[i] = new Pessoa();
}
}
}
Seria isso q queria saber?
Bom dia Adriano.
Assim funcionou, grato.
Achei que teria algum jeito mais fácil de fazer sem precisar varrer o array, mas funcionou, então está valendo.
Gustavo