Devo fare una procedura che controlla se in una lista di numeri ci sono dei buchi oppure no.
Il problema è che ci possono essere anche dei valori ripetuti nella lista, quindi in questo caso non saprei come fare.
Il seguente codice scandisce i numeri e li stampa se non sono progressivi:
In questo modo però al primo buco stamperà tutti gli altri numeri perchè non sono più "allineati". Mentre io vorrei stampare sono i buchi: come potrei sistemare il codice?codice:DocumentoVenditaTes ddt = (DocumentoVenditaTes) Factory.createObject(DocumentoVenditaTes.class, app); String orderBy = SQLHelpler.compressKey(new String[]{"numeroDDTCliente"}); NavigableList nav = ddt.read(orderBy); // Numero DDT NumericLTBL numeroDDT = new NumericLTBL(ddt.getNumeroDDTCliente().getCName(), ddt.getNumeroDDTCliente().getAName()); NumericLTBL cont = new NumericLTBL(ddt.getNumeroDDTCliente().getCName(), ddt.getNumeroDDTCliente().getAName()); cont.setFormatted("0"); NumericLTBL uno = new NumericLTBL(ddt.getNumeroDDTCliente().getCName(), ddt.getNumeroDDTCliente().getAName()); uno.setFormatted("1"); while (nav.hasNextElement()) { ddt = (DocumentoVenditaTes) nav.nextElement(); if(!ddt.getNumeroDDTCliente().getFormatted().equals(ddt.getNumeroDDTCliente().getNullValue())){ numeroDDT.setFormatted(ddt.getNumeroDDTCliente().getFormatted()); cont.add(uno); if(!numeroDDT.getFormatted().equals(cont.getFormatted())){ System.out.println(ddt); } } }

Rispondi quotando