Duvida com list do java

3 respostas
f2pro

pessoal, tenho um objeto endereço e uma lista que armazena os endereços
ai, vou adicionando os endereços nesta lista e listo em tempo real numa tabela, utilizando primefaces e jsf 2.0
entao, ao clicar em um dos endereços listados na lista eu pego ele e procuro ele na lista pelo método lista_contatos.indexOf(objetoContato) onde ele sempre me retorna o valor 0, sendo a posição indice 0 da lista mesmo que este objeto seja o 4 …

entao… tentei de outras maneiras como passar indice por indice num for e utilizar o equals para comparar e todos me retornaram verdadeiros… significando que o objeto contato era igual a todos os que estavam na lista, mesmo tendo valores diferentes…

qual a maneira correta de encontrar este objeto na lista?
e o que pode estar ocorrendo??

[]'s

3 Respostas

R

Você redefiniu o método equals() da classe dos objetos contidos na lista? O método List.indexOf() usa equals() para determinar se um objeto contido na lista é igual àquele que você passou como parâmetro.

f2pro

esse equals foi criado automaticamente pelo hibernate…

f2pro

esse equals foi criado automaticamente pelo hibernate…

@Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Contato)) { return false; } Contato other = (Contato) object; if ((this.codigo_contato == null && other.codigo_contato != null) || (this.codigo_contato != null && !this.codigo_contato.equals(other.codigo_contato))) { return false; } return true; }

Criado 27 de janeiro de 2011
Ultima resposta 27 de jan. de 2011
Respostas 3
Participantes 2