É o seguinte:
Tenho três listas: uma vazia (lista 1), uma com um list de Documentos (lista 2) e outra com um list de DocumentosEnviados (lista 3). A primeira lista vai receber Documentos da lista 2 e depois vai receber documentos da lista 3. Porém, documentos da lista 2 podem, e normalmente vão, estar na lista 3, mas não necessariamente.
Inicialmente eu populo a lista 1 com os documentos da lista 2 e depois preciso popular a lista 1 com os documentos da lista 3 que não foram adicionados na lista 1. Estou usando o método contains para verificar a existência do objeto na lista, mas, ainda assim, o contains continua inserindo os objetos.
E agora? Vou colocar o código comentado para vcs.
// Método que retorna os documentos para envio: Cadastrado e Destinados
public List<Documento> getDocumentosLogado(){
List<Documento> listaDocLogado = new ArrayList<Documento>();
for (Documento documento : this.getDocumentos()) {
if(documento.getFuncionario().getNome().equals(this.loginBean.getFuncionarioL().getNome())){
listaDocLogado.add(documento); // lista 1: Documentos cadastrados pelo próprio funcionário
}
}
EnviarDocumentoBean listaEnviados = new EnviarDocumentoBean();
for (EnviarDocumento enviarDocumento : listaEnviados.getEnviarDocumentos()) { // lista 2: Todos os documentos da entidade EnviarDocumentoBean enviados para o funcionário
if(!listaDocLogado.contains(enviarDocumento.getDocumento())){
listaDocLogado.add(enviarDocumento.getDocumento());
}
}
return listaDocLogado;
}