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:
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);
}
}
}
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?