Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xandevieira

Preciso de uma dica

Recommended Posts

Bom dia, tenho uma lista de objetos, no objeto defini um campo "chOrigem" para ser minha chave de pesquisa.Esta chave pode ocorrer repetições.Preciso de uma dica de como pegar nesta lista os objetos que contenham a mesma chave, para criar um novo objeto mesclando os objetos encontrados.Os atributos do meu objeto: private Integer nuLoteContabil; private Integer cdEmpresa; private Integer nuSeqLote; private String tpLancamento; private String flExporta; private String cdContabil; private Date dtContabil; private Double vlContabil; private String cdDocumento; private String nuDocumento; private String cdHistorico; private String deHistorico; private String cdOrigem; private String chOrigem; private Contabil contabil; private Empresa empresa; private Documento documento;Estava pensando em fazer o seguinte:Montar um map da lista desta forma:public static Map listToMap(List<LancGerado> list) { Map map = new LinkedHashMap<String, LancGerado>(); for (LancGerado lancGerado : list) { if(Contabil.ORIGEM_CX.equals(lancGerado.getCdOrigem())){map.put(lancGerado.getDtContabil()+"_"+lancGerado.getCdOrigem()+"_"+lancGerado.getCdDocumento()+"_"+lancGerado.getNuDocumento(), lancGerado); }else{ map.put(lancGerado.getDtContabil()+"_"+lancGerado.getCdOrigem()+"_"+lancGerado.getChOrigem()+"_"+lancGerado.getCdDocumento()+"_"+lancGerado.getNuDocumento(), lancGerado); } } return map;}So que não consigo pensar em como continuar.Se alguem puder me ajudar fico muito agradecido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué...você parou porque?Acho que só faltou um LIST de MAPS para guardar cada iteração.Parece estar preparado já o código.você consegue garantias que os vários atributos concatenados como chave do MAP não irão se repetir? Sendo assim ta no esquema.O que mais quer fazer?Abraços.Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A chave pode ser repetir, e as repeticoes, quero gerar outro objeto.Ex. tenho dois objetos com a mesma chave.Obj1 = Valor = 100, documento = nf 1010, conta = 5050Obj2 = Valor = 100, documento = nf 1010, conta = 6060originaria o terceito objetoObj3 = Valor = 100, documento = nf 1010, conta = 50506060onde foram mescladas um atributo especifico "conta"nesta parte que nao consigo pensar em como prosseguir.

Ué...você parou porque?Acho que só faltou um LIST de MAPS para guardar cada iteração.Parece estar preparado já o código.você consegue garantias que os vários atributos concatenados como chave do MAP não irão se repetir? Sendo assim ta no esquema.O que mais quer fazer?Abraços.Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, No mesmo MAP não pode haver chaves iguais (por isso se chama chave).você quer percorrer uma lista com determinados VOs e toda vez que encontrar uma chave igual você pega o conteúdo do Map (getValue) e concatena com o que você já tem, depois você seta novamente no Map com o mesma chave o novo valor.Ficou muito confuso cara?!Espero ter colaborado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.