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

Dúvida sobre equals e contains

EStou com dúvida porque o método equals interfere no contains mesmo sendo de classes diferentes. Por exemplo :

package br.com.bytebank.banco.test.util;

import java.util.ArrayList;

import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;

public class TesteArrayListEquals {
    public static void main(String[] args){

        ArrayList<Conta> lista = new ArrayList<Conta>();

        Conta cc1 = new ContaCorrente(22, 22);
        Conta cc2 = new ContaCorrente(22, 22);

        lista.add(cc1);

        boolean existe = lista.contains(cc2);

        System.out.println("Já existe? " + existe);

        for(Conta conta : lista){
            System.out.println(conta);
        }
    }
}

Se não tiver o método equals em Conta, o método contains retorna false. Porém, se existir o método equals, teremos contains retornando true. Mas a contains não é um método de lista(que é um ArrayList) como ele interfere no equals, que é o método de Conta( em que cada referência cc1, cc2 está dentro de lista).

1 resposta
solução!

Oie Wellder, tudo bem contigo?

O método "contains" de uma lista usa o "equals" por de baixo dos panos, por isso que nessa situação onde se precisa fazer uma comparação customizada é importante fazer a alteração no "equals", já que o "contains" é dependende dele.

Espero ter ajudado!

Se tiver qualquer outra dúvida estarei por aqui :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software