ArrayList打印重复元素

时间:2018-09-13 09:15:24

标签: java arraylist

sectionTreatment.setSurgeryPerformedGrid(Lists.newArrayList());


//testing
if (elementNodeExist(element, "surgery-performed-grid")) {
    NodeList childList = element.getElementsByTagName("surgery-performed-grid");

for(int i = 0; i < childList.getLength(); i++) {
    OromaxSurgeryPerformedGrid surgeryPerformedGrid1 = new OromaxSurgeryPerformedGrid();
    LOG.debug("childList.........." + childList);
    surgeryPerformedGrid1.setSurgeryPerformedDate(getStringValForElementTag(element, "surgery-performed-date"));
    surgeryPerformedGrid1.setSurgeryPerformedProcedureSpecify(getStringValForElementTag(element, "surgery-performed-procedure-specify"));
    surgeryPerformedGrid1.setSurgeryPerformedProcedureCode(new ArrayList<>());
    String surgeryPerformedCode = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForElementTag(element, "surgery-performed-procedure"));
    if(surgeryPerformedCode != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode) != null) {
        surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add( Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode));
    }
    String surgeryPerformedlv1 =lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForElementTag(element, "surgery-performed-procedure-detail-lvl1"));
    if(surgeryPerformedlv1 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1) != null) {
        surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1));
    }
    String surgeryPerformedlv2 = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForElementTag(element, "surgery-performed-procedure-detail-lvl2"));
    if(surgeryPerformedlv2 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2) != null) {
        surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2));
    }
    surgeryPerformedGrid1.setSurgeryPerformedType(Pris3BMdmMapper.getSurgeryPerformedA(String.valueOf(lookupMapperHelperService.getOromaxLevelCodeById(getIntValForElementTag(element, "surgery-performed-type")))));
    surgeryPerformedGrid1.setSurgeryPerformedSite(lookupMapperHelperService.getOromaxProcedureSiteCodeById(getIntValForElementTag(element, "surgery-performed-site")));
    surgeryPerformedGrid1.setSurgeryPerformedLaterality(lookupMapperHelperService.getLateralityCodeById(getIntValForElementTag(element, "surgery-performed-laterality")));
    surgeryPerformedGrid1.setSurgeryPerformedSiteOthers(getStringValForElementTag(element, "surgery-performed-site-others"));

    sectionTreatment.getSurgeryPerformedGrid().add(surgeryPerformedGrid1);
}

我的代码应该读取并打印xml中的标签“ surgery-performed-grid”内的元素。但是我的输出将继续打印标记的第一个元素。我的输出:

"surgeryPerformedGrid": [{
            "surgeryPerformedDate": "2018-09-11",
            "surgeryPerformedProcedureCode": ["01"],
            "surgeryPerformedSite": "02",
            "surgeryPerformedSiteOthers": null,
            "surgeryPerformedLaterality": null,
            "surgeryPerformedType": null,
            "surgeryPerformedProcedureSpecify": null
        }, {
            "surgeryPerformedDate": "2018-09-11",
            "surgeryPerformedProcedureCode": ["01"],
            "surgeryPerformedSite": "02",
            "surgeryPerformedSiteOthers": null,
            "surgeryPerformedLaterality": null,
            "surgeryPerformedType": null,
            "surgeryPerformedProcedureSpecify": null

此代码在ArrayList中保留添加相同的对象(surgeryPerformedGrid1)。如何在ArrayList中添加不同的对象(每个元素)?

 sectionTreatment.getSurgeryPerformedGrid().add(surgeryPerformedGrid1);

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在中使用父元素,因此您的代码应如下所示:

sectionTreatment.setSurgeryPerformedGrid(Lists.newArrayList());


//testing
if (elementNodeExist(element, "surgery-performed-grid")) {
    NodeList childList = element.getElementsByTagName("surgery-performed-grid");

for(currentElement: childList) {
        OromaxSurgeryPerformedGrid surgeryPerformedGrid1 = new OromaxSurgeryPerformedGrid();
    LOG.debug("childList.........." + childList);
    surgeryPerformedGrid1.setSurgeryPerformedDate(getStringValForcurrentElementTag(currentElement, "surgery-performed-date"));
    surgeryPerformedGrid1.setSurgeryPerformedProcedureSpecify(getStringValForcurrentElementTag(currentElement, "surgery-performed-procedure-specify"));
    surgeryPerformedGrid1.setSurgeryPerformedProcedureCode(new ArrayList<>());
    String surgeryPerformedCode = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-procedure"));
    if(surgeryPerformedCode != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode) != null) {
        surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add( Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode));
    }
    String surgeryPerformedlv1 =lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-procedure-detail-lvl1"));
    if(surgeryPerformedlv1 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1) != null) {
        surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1));
    }
    String surgeryPerformedlv2 = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-procedure-detail-lvl2"));
    if(surgeryPerformedlv2 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2) != null) {
        surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2));
    }
    surgeryPerformedGrid1.setSurgeryPerformedType(Pris3BMdmMapper.getSurgeryPerformedA(String.valueOf(lookupMapperHelperService.getOromaxLevelCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-type")))));
    surgeryPerformedGrid1.setSurgeryPerformedSite(lookupMapperHelperService.getOromaxProcedureSiteCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-site")));
    surgeryPerformedGrid1.setSurgeryPerformedLaterality(lookupMapperHelperService.getLateralityCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-laterality")));
    surgeryPerformedGrid1.setSurgeryPerformedSiteOthers(getStringValForcurrentElementTag(currentElement, "surgery-performed-site-others"));

    sectionTreatment.getSurgeryPerformedGrid().add(surgeryPerformedGrid1);
}