Estou com um problema bem chato,
tenho uma lista de objetos que ao invés de adicionar elementos está sobrescrevendo.
Primeiramente usei uma List e depois um Set.
[code]for(XmlItemNota itNota : listaItNota){
c170nfeAux.setArquivoXML( arquivos[i].getAbsolutePath());
c170nfeAux.setC100_f04_COD_PART( xmlNota.getC100_f04_COD_PART());
c170nfeAux.setC100_f05_COD_MOD( xmlNota.getC100_f05_COD_MOD());
c170nfeAux.setC100_f07_SER( xmlNota.getC100_f07_SER());
c170nfeAux.setC100_f08_NUM_DOC( xmlNota.getC100_f08_NUM_DOC());
c170nfeAux.setF01_REG( "C170NFe");
c170nfeAux.setF02_NUM_ITEM( itNota.getF02_NUM_ITEM());
c170nfeAux.setF03_COD_ITEM( itNota.getF03_COD_ITEM());
c170nfeAux.setF04_DESCR_COMPL( itNota.getF04_DESCR_COMPL());
c170nfeAux.setF05_QTD( itNota.getF05_QTD());
c170nfeAux.setF06_UNID( itNota.getF06_UNID());
c170nfeAux.setF07_VL_ITEM( itNota.getF07_VL_ITEM());
c170nfeAux.setF08_VL_DESC( itNota.getF08_VL_DESC());
c170nfeAux.setF09_IND_MOV( itNota.getF09_IND_MOV());
c170nfeAux.setF10_CST_ICMS( itNota.getF10_CST_ICMS());
c170nfeAux.setF11_CFOP( itNota.getF11_CFOP());
c170nfeAux.setF12_COD_NAT( itNota.getF12_COD_NAT());
c170nfeAux.setF13_VL_BC_ICMS( itNota.getF13_VL_BC_ICMS());
c170nfeAux.setF14_ALIQ_ICMS( itNota.getF14_ALIQ_ICMS());
c170nfeAux.setF15_VL_ICMS( itNota.getF15_VL_ICMS());
c170nfeAux.setF16_VL_BC_ICMS_ST( itNota.getF16_VL_BC_ICMS_ST());
c170nfeAux.setF17_ALIQ_ST( itNota.getF17_ALIQ_ST());
c170nfeAux.setF18_VL_ICMS_ST( itNota.getF18_VL_ICMS_ST());
c170nfeAux.setF19_IND_APUR( itNota.getF19_IND_APUR());
c170nfeAux.setF20_CST_IPI( itNota.getF20_CST_IPI());
c170nfeAux.setF21_COD_ENQ( itNota.getF21_COD_ENQ());
c170nfeAux.setF22_VL_BC_IPI( itNota.getF22_VL_BC_IPI());
c170nfeAux.setF23_ALIQ_IPI( itNota.getF23_ALIQ_IPI());
c170nfeAux.setF24_VL_IPI( itNota.getF24_VL_IPI());
c170nfeAux.setF25_CST_PIS( itNota.getF25_CST_PIS());
c170nfeAux.setF26_VL_BC_PIS( itNota.getF26_VL_BC_PIS());
c170nfeAux.setF27_ALIQ_PIS( itNota.getF27_ALIQ_PIS());
c170nfeAux.setF28_QUANT_BC_PIS( itNota.getF28_QUANT_BC_PIS());
c170nfeAux.setF29_ALIQ_PIS( itNota.getF29_ALIQ_PIS());
c170nfeAux.setF30_VL_PIS( itNota.getF30_VL_PIS());
c170nfeAux.setF31_CST_COFINS( itNota.getF31_CST_COFINS());
c170nfeAux.setF32_VL_BC_COFINS( itNota.getF32_VL_BC_COFINS());
c170nfeAux.setF33_ALIQ_COFINS( itNota.getF33_ALIQ_COFINS());
c170nfeAux.setF34_QUANT_BC_COFINS( itNota.getF34_QUANT_BC_COFINS() );
c170nfeAux.setF35_ALIQ_COFINS( itNota.getF35_ALIQ_COFINS());
c170nfeAux.setF36_VL_COFINS( itNota.getF36_VL_COFINS());
c170nfeAux.setF37_COD_CTA( itNota.getF37_COD_CTA());
c170nfeAux.setF38_DT_EMIS( itNota.getF38_DT_EMIS());
listaC170NFe.add(c170nfeAux);
}[/code]
A listaItNota possui três elementos distintos no campo numero do item, respectivamente 1, 2 e 3
Após adicionar os objetos a listaC170NFe e percorrer a mesma usando a interface List via depurador do NetBeans, pude observar que:
No primeiro laço foi adicionado o primeiro objeto corretamente.
[list]obj1.num_item = 1[/list]
No segundo Laço foi adicionado o objeto 2 e o objeto 1 foi sobrescrito pelo objeto 2.
[list]obj1.num_item = 2[/list]
[list]obj2.num_item = 2[/list]
No terceiro laço foi adicionado o objeto 3 e os objetos 1 e 2 foram sobrescritos pelo 3.
[list]obj1.num_item = 3[/list]
[list]obj2.num_item = 3[/list]
[list]obj3.num_item = 3[/list]
Repeti o mesmo procedimento utilizando a interface Set e a implementação HashSet, e observei que;
No primeiro laço foi adicionado o primeiro objeto corretamente.
[list]obj1.num_item = 1[/list]
No segundo Laço foi adicionado o objeto 2 sobrescrevendo a primeira entrada. Continua com apenas um elemento.
[list]obj2.num_item = 2[/list]
No terceiro Laço foi adicionado o objeto 3 sobrescrevendo a segunda entrada. Continua com apenas um elemento.
[list]obj3.num_item = 3[/list]