Lavorando come programmatore mi sono imbattuto più volte in un problema piuttosto comune. Una mia funzione ricerca una serie di oggetti in back-end su un database. Questa ritorna una lista non ordinata (nel caso specifico non potevo fare in modo che la SELECT sul DB ordinasse i valori) di oggetti complessi. Una volta ritornata in front-end questa lista deve essere messa in una griglia e di default deve essere ordinata alfabeticamente per codice. Come posso fare per ordinare la mia lista?
In aiuto ci viene la classe Collections, che implementa un metodo sort, il quale prende in ingresso una lista e un comparatore. Vediamo subito il codice:
...
List oggettoComplesso = new ArrayList();
try {
oggettoComplesso = (RECUPERA OGGETTI DAL BE)
} catch (final Exception e) {
...
}
}
Collections.sort(oggettoComplesso, new Comparator() {
public int compare(final DTO obj1, final DTO obj2) {
if (obj1 != null && obj2 != null) {
final DTO objOfMyClass1 = obj1;
final DTO objOfMyClass2 = obj2;
if (objOfMyClass1.getCod() != null && objOfMyClass2.getCod() != null) {
return objOfMyClass1.getCod().compareToIgnoreCase(objOfMyClass2.getCod());
} else {
return -1;
}
} else {
return -1;
}
}
});
Innanzitutto mi recupero i dati dal back-end (riga 4). Una volta effettuati i controlli del caso posso partire con il mio ordinamento. Utilizzo la classe statica Collections (riga 9) e alla sort passo la mia lista e un nuovo comparatore. In questo caso per comodità è stato dichiarato in-line ma sarebbe meglio creare una nuova classe separata e passare l’oggetto istanziato come secondo parametro. All’interno del mio comparatore ho ridefinito il metodo compare, quello che si occupa del confronto tra i due oggetti passati (riga 10). In questo caso i parametri del compare sono stati tipizzati, ma si poteva usare anche il generico Object per poi castarlo. Da qui in poi potete usare tutta la vostra logica per stabilire come devono essere ordinati gli oggetti. Nel mio caso confronto i codici (che sono stringhe) ma potete scegliere un qualsiasi altro campo (riga 15). La regola che controlla il compare vuole che se il primo oggetto è maggiore del secondo, la funzione deve tornare un numero negativo, zero se sono uguali e un numero positivo altrimenti. In caso di errori in questo caso è stato deciso di ritornare -1 in modo che l’ordinamento non viene cambiato.
Boinc è un software per il Grid computing volontario. Quante volte state davanti al pc e guardate un film, ascoltate musica o scrivete un semplice file di testo? Oppure quanto tempo lasciate il vostro computer li a scaricare qualcosa per delle ore senza neanche usarlo? Rispondo io: TROPPO!! Allora vi do un consiglio: occupate tutto quel tempo CPU sprecato cercando di fare qualcosa di buono per il mondo intero! Difficilissimo? No, semplicissimo! Vi basta installare BOINC sul vostro computer, selezionare a quale progetto partecipare e far partire l’esecuzione. In questo modo donerete tempo di calcolo a progetti di pubblico interesse, che dovrebbero spendere miliardi per poter far girare i loro software su qualche supercalcolatore.
↓ Read the rest of this entry…
Source Code è un film di fantascenza del 2011 di Duncan Jones.
Un uomo si sveglia d’improvviso su un treno, seduto di fronte a una bella ragazza che gli sta parlando. Sembra che lei lo conosca ma lui non si ricorda di lei, e non si ricorda cosa ci fa su quel treno. Infatti lui è Colter Stevens, pilota d’elicotteri in Afghanistan. Nel momento in cui gli sembra d’impazzire non riconoscendosi allo specchio il treno esplode e Colter viene proiettato d’improvviso in una specie di capsula. Il treno era tutta un’illusione, frutto di un sofisticato computer. Il suo scopo: capire perché è esploso il treno…
Il tema affrontato nel film è abbastanza classico per un film di fantascenza, rivivere la stessa giornata centinaia di volte per riuscere a scorgere particolari che non si erano notati e poi riuscire a risolvere la situazione salvando tante persone. ↓ Read the rest of this entry…
Il tredicesimo piano è un film di fantascenza del 1999 di Josef Rusnak. Questo lungometraggio è in parte basato sul libro Simulacron-3 di Daniel F. Galouye.
Il presidente della società, Hannon Fuller, viene trovato morto in un vicolo. Unico indizio un messaggio lasciato al suo socio in affari Douglas Hall all’interno del loro progetto di simulazione di vita virtuale. Questa simulazione ricrea la Los Angeles del 1937 fedelmente e al suo interno ogni “unità” è senziente e dotata di vita propria. Douglas si sente partecipe nell’omicidio del suo collega in quanto la maggior parte degli indizi portano a lui. Avrà quindi inizio una battaglia tra il mondo reale e il mondo virtuale per riuscire a discolparsi da questa pesante accusa ma come sempre accade le cose non sono mai come sembrano…. ↓ Read the rest of this entry…
©2011-2012 noizer.it | Powered by WordPress with Easel | Subscribe: RSS | Back to Top ↑
Recent Comments