Como comparar se existe algo em comum entre objetos dentro de um ArrayList?

1 resposta
A
Olá, boa noite!

Amigos, estou com uma dúvida quanto a verificação de propriedades em comum de objetos dentro de um ArrayList de um tipo, segue o código para melhor entendimento.

Classe Pessoa

public class Pessoa {
	
	private String nome;
	private int idade;
	private double altura;
	
	public Pessoa(String nome){
		this.nome = nome;
	}	
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public int getIdade() {
		return idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}
	public double getAltura() {
		return altura;
	}
	public void setAltura(double altura) {
		this.altura = altura;
	}
}
--------------------------------
Classe ListaPessoa

import java.util.ArrayList;
import java.util.Iterator;

public class ListaPessoa {
	
	ArrayList<Pessoa> lista = new ArrayList<Pessoa>();	
	
	public void adicionar(Pessoa nomePessoa){
		lista.add(nomePessoa);
	}	
	
	public void lista(){		
		Iterator <Pessoa> i = lista.iterator();
		while(i.hasNext()){
			Pessoa pessoa = (Pessoa) i.next();
			System.out.println("Nome: " + pessoa.getNome() + "\nIdade: " + pessoa.getIdade() + "\nAltura: " + pessoa.getAltura());
		}		
	}	
}
--------------------------------
Classe Main

public class Main {

	public static void main(String[] args) {		

		ListaPessoa inserir = new ListaPessoa();
		
		Pessoa pessoa1 = new Pessoa("Alan Queiroz");
		Pessoa pessoa2 = new Pessoa("Fernando Santana");
		Pessoa pessoa3 = new Pessoa("Gregório Cardoso");
		
		pessoa2.setIdade(24);
		pessoa1.setAltura(1.84);
		
		pessoa3.setIdade(25);
		pessoa3.setAltura(1.84);
		
		inserir.adicionar(pessoa1);
		inserir.adicionar(pessoa2);
		inserir.adicionar(pessoa3);
		
		inserir.lista();

	}
}

=================

Nesse caso o que eu teria em comum em uma dessas três instâncias do tipo pessoa, seria o atributo altura do objeto pessoa1 e pessoa3.  Então a minha dúvida é como utilizar o método contains para fazer essa verificação dentro de um ArrayList de Objetos ?

Desde  abradeço a todos.

1 Resposta

Rodrigo_Sasaki

O método contains faz uso do método equals, é só sobrescrever equals da maneira desejada que o contains funcionará.

Criado 14 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 1
Participantes 2