Função para remover da classe Agenda

5 respostas
A

Pessoal,estou com uma dúvida,estou usando o arrayList para adicionar,remover,pesquisar e alterar.
O método adicionar eu já fiz,que ficou assim:

import java.util.ArrayList;

public class Agenda {
   
   
    ArrayList<Contato> listaContato = new ArrayList<Contato>();
   
    public void adicionarContato(Contato c){
   
        listaContato.add(c);
           
    }

E eu queria saber,se para o método remover da lista,seria listaContato.remove(olhei em alguns lugares assim).

public void  removerContato(Contato r){
	

       listaContato.remove(); //(o que coloco dentro do parâmetro? é 'c',igual ao adicionar contato?.E é remove mesmo?

}

E vou deixar esse tópico em aberto,pois surgirá outras dúvidas em certas partes.

5 Respostas

renanjp

O que voce passa para frente é o mesmo que voce recebeu como parametro…
Neste caso o r…

public void  removerContato(Contato r){  
      
  
       listaContato.remove(r); //Passe o contato que vc recebeu como parametro para frente..  
  
}

poremmmmm
Não é garantido que a remoção sera efetuada…

pois o metodo remove da classe ArrayList utiliza o metodo equals.
Dependendo da sua classe contato, se ela não reiplementar este metodo, junto com o hash code…
pode dar problemas… mas esta é outra conversa…
Qualqer dúvida estou a disposição…

Att

A

renanjp:
Isso mesmo…

public void  removerContato(Contato r){  
      
  
       listaContato.remove(r); //Passe o contato que vc recebeu como parametro para frente..  
  
}

poremmmmm
Não é garantido que a remoção sera efetuada…

pois o metodo remove da classe ArrayList utiliza o metodo equals.
Dependendo da sua classe contato, se ela não reiplementar este metodo, junto com o hash code…
pode dar problemas…

Entendi,uma coisa…não posso usar a palavra ‘C’ que usei no método adicionar novamente não né? tenho que criar uma variavel diferente de ‘C’ para remover o contato né?
então pra pesquisar eu usaria ‘P’ e não o ‘C’ de adicionarContato.Isso?

renanjp

Desculpe, eu atualizei o meu post la de cima pois não tinha entendido sua pergunta…

Agora…
vamos la…

No java quando vc passa algum parametro para os metodos…
as variaveis se tornam local…

EX:

public void x (int x){

}

public void y(int x){

}

A variavel “int x” em ambos metodos so vão existir enquanto a execução do metodo estiver sendo processada…
ou seja…
eu posso repetir estas variaves na recepção de outros metodos normalmente…

no seu caso…

vc poderia fazer…

adicionaContato(Contato c){...}
removeContato(Contato c){...}

normalmente :slight_smile:

A

ah tá,entendi…Obrigado.
Vou ir pra casa agora,e fazer. Depois se houver mais alguma dúvida posto ela.

Abraço.

A
Pessoal,assim como no método adicionarContato,em que eu criei na classe Agenda,eu criei um Construtor na classe Contato,que ficou assim:
public class Contato {
    
    private String nome;
    private Endereco endereco;
    private String telefone;
    private String email;
    
    
 Contato(String nome, Endereco endereco, String telefone, String email){
      this.nome = nome;
      this.endereco = endereco;
      this.telefone = telefone;
      this.email = email;
  }

Mas eu também tenho que criar um construtor na classe Contato,para excluir,pesquisar e alterar? para todos esses também?
e só depois ir para a classe gerenciadorAgenda,que seria o Main.

PS: Não estou usando banco de dados,apenas na memória temporária mesmo.

Criado 12 de julho de 2012
Ultima resposta 12 de jul. de 2012
Respostas 5
Participantes 2