Função para remover da classe Agenda

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;

[code]public class Agenda {

ArrayList<Contato> listaContato = new ArrayList<Contato>();

public void adicionarContato(Contato c){

    listaContato.add(c);
       
}[/code]

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

[code]public void removerContato(Contato r){

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

}[/code]

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

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

[quote=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…[/quote]

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?

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:

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

Abraço.

Pessoal,assim como no método adicionarContato,em que eu criei na classe Agenda,eu criei um Construtor na classe Contato,que ficou assim:

[code]
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;
}[/code]

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.