Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Qual a forma mais indicada para procurar por objetos usando uma variavel como parametro?

durante a aula, foi ensinado como usar o contens para procurar um objeto passando um objeto que precisamos criar com os imputs. mas e se eu tiver um objeto com centenas de variáveis e quero procurar por uma, por exemplo, o nome? O melhor método e fazer um for?

1 resposta
solução!

Olá Kaique, o método contains irá invocar o método implícito equals de cada objeto para fazer a comparação. Logo uma solução seria a sobrescrita do método equals no seu objeto com a especialização necessária, por exemplo:

public class Pessoa {
    private String nome;

    Pessoa(String nome){
        this.nome = nome;
    }

    // getter e setter

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof Pessoa)) {
            return false;
        }
        final Pessoa other = (Pessoa) obj;
        return this.getNome().equals(other.getNome());
    }

}
public class Main {

    public static void main(String[] args) {
        ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>();
        // Adiciona várias pessoas aqui

    // Instancia um novo objeto pessoa
    Pessoa p = new Pessoa("Fulano");

    // verifica se existe no array
    // para comparação será utilizado o método 
    // equals sobrescrito na classe Pessoa
    if(!pessoas.contains(p)){
        pessoas.add(p);
    }

    }