Comparar 2 <List> ou HasSet

7 respostas Resolvido
listjava
Carlos_Barauna

Estou com um problema onde preciso comparar duas listas, só que não é somente o tamanho é os objetos também.

Por exemplo preciso saber se o objeto da posição 1 da primeira lista é o mesmo da segunda lista.
Já transformei elas em um HasSet e usei equals para testar e fica dando sempre true,usei o lista1!=lista2 e ficava dando true em todas as situações.

7 Respostas

Dragoon

Tem o código para gente dá uma olhada?

darklordkamui

Há meios de descobrir se o objeto existe na outra lista, mas não se o primeiro da lista é o mesmo primeiro da segunda lista, você teria que fazer a função por si só.

Carlos_Barauna

Cara ainda não desenvolvi nada relacionado a essa comparação.
O que tenho é somente acesso a lista que faço a busca.

cicloAnualTemp = cicloAnualService.consultarPorId(new CicloAnual(idCicloAnual));`

**CicloAnualTemp** é um objeto do tipo **List**. Toda vez que entro na tela ele é carregado. Se for pelo botão novo ele vem vazio justamente por que o **idCicloAnual** é **Null**.
Se for pelo editar ele traz o objeto correspondente do banco.

Carlos_Barauna

Não precisaria necessariamente verificar as posições.
Seria mais ou menos comparar os objetos de dentro da lista pelo id. quando o id for igual fazer a comparação dos demais itens do objeto. Um FOREACH creio que resolveria. Mas nesse caso terei muito OBJ o que iria onerar o desempenho.

Dragoon

Está muito amplo, foque na sua pergunta com um exemplo, se não tem simule e quem sabe a duvida será retirada por você mesmo! que tal?

Carlos_Barauna

Vamos lá para vê se fica melhor. No meu caso tenho uma lista de plano LISTPLANO, cada plano tem uma lista de tarefas LISTTAREFAS, cada tarefa é executada por um ou mais funcionários então tenho outra LISTFUNCIONARIOS.

Quando o usario entrar nessa tela todos os dados serão carregado do banco até ai ta funcionando.
O que preciso fazer é que se ele alterar algum desses dados e resolver sair sem salvar devo alerta-lo que tem dados sem salvar.

Dragoon
Solucao aceita

Coloque um flag no seu código aonde qualquer alteração na sua lista você altera o status do flag!

!

Criado 5 de setembro de 2016
Ultima resposta 5 de set. de 2016
Respostas 7
Participantes 3