Comparar 2 <List> ou HasSet

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.

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

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ó.

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.

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.

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?

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.

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

!