Olá,
Preciso criar uma classe Pessoa com os atributos: nome, e-mail, telefone e um arraylist de contatos do tipo Pessoa. Para ser mais exato, estou com problemas em criar o seguinte método pra minha classe: Crie um método que recebe uma pessoa como parâmetro e
retorna a lista de contatos em comum entre elas.
Ajuda por favor!
Obrigado!
Você sabe como criar um método em uma classe?
Qual a dúvida nessa questão exatamente?
Indo direto ao ponto, eu tenho que fazer uma atividade pra faculdade ( sem pontuação ) com o intuito de praticar Java nesse período de quarentena. O professor passou o seguinte exercício:
- Crie uma classe Pessoa, uma pessoa tem nome, telefone,
e-mail, e uma lista de contatos, que também são pessoas.
- Crie construtores sobrecarregados que permitam:
Inicializar o nome, telefone e o e-mail;
Apenas o nome e o telefone;
- Crie os getters e setters necessários;
- Crie um método para adicionar uma nova pessoa a lista de
contatos;
- Crie um método que recebe o nome de uma pessoa. O
método deve retornar a refência da pessoa caso ela esteja
na lista de contatos, null caso contrário;
*** Crie um método que recebe uma pessoa como parâmetro e
retorna a lista de contatos em comum entre elas.
- Crie um método removeContato, esse método deve receber
o nome da pessoa a ser excluída e efetuar a exclusão da
lista de contatos;
- Crie um método que exibe toda a lista de contatos.
Basicamente não consegui pensar em uma forma de fazer o método com os três * .
Ele até passou um link com a resolução mas ainda tive dificuldade para entender o código 
Eu fiz os 5 tópicos, de cima pra baixo.
mas código meu consagrado, código, tópico não resolve a lição
1 curtida
public class Pessoa {
private String nome;
private String telefone;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public ArrayList<Pessoa> getContatos() {
return contatos;
}
public void setContatos(ArrayList<Pessoa> contatos) {
this.contatos = contatos;
}
private String email;
private ArrayList<Pessoa> contatos;
public Pessoa(String nome, String telefone, String email){
this.nome = nome;
this.telefone = telefone;
this.email = email;
this.contatos = new ArrayList<>();
}
public Pessoa(String nome, String telefone){
this.nome = nome;
this.telefone = telefone;
this.contatos = new ArrayList<>();
}
public void adicionarContato(Pessoa pessoa){
this.contatos.add(pessoa);
}
public Pessoa buscaContato(String nome){
for (Pessoa pessoa : this.contatos) {
if (nome.equals(pessoa.getNome())) {
return pessoa;
}
}
return null;
}
//Duvida aqui
public ArrayList<Pessoa> contatosComuns(Pessoa p) {
ArrayList<Pessoa> cComuns = new ArrayList<>();
ArrayList<Pessoa> c2 = p.getContatos();
for(int i=0; i<this.contatos.size(); i++) {
Pessoa corrente = this.contatos.get(i);
for (int j=0; j<c2.size(); j++) {
Pessoa temp = c2.get(j);
String nomeTemp = temp.getNome();
if(nomeTemp.equals(corrente.getNome())) {
cComuns.add(temp);
break;
}
}
}
return cComuns;
}
}
Estou com duvida no método contatosComuns. Se puder explica-lo, agradeço.
pelo que eu entendi você vai pegar 2 pessoas, dentro de cada uma delas tem uma lista de contatos, voce vai comparar contato por contato e retornar os que são iguais.
ex:
Pessoa: Joao
contatos:
Ana, beatriz, joana
Pessoa: Gustavo
contatos:
jordana, beatriz, maria, ana
Então a saida vai ser:
Ana e beatriz
1 curtida