Non conoscendo la struttura della tua classe Pippo le cui istanze contenute nell'ArrayList vuoi ordinare ti offro un semplice spunto che dovrai adattare alle tue esigenze.
Puoi fare una cosa del genere, crei una classe:
codice:
import java.util.Comparator;
public class PippoComparator implements Comparator<Pippo> {
public int compare(Pippo p1, Pippo p2) {
if (p1.getValoreChiave().compareTo(p2.getValoreChiave()) < 0) {
return -1;
} else if (p1.getValoreChiave().compareTo(p2.getValoreChiave()) > 0) {
return 1;
}
return 0;
}
}
e nelle classe in cui si trova l'ArrayList da ordinare fai una cosa del genere:
codice:
// ArrayList da ordinare
List<Pippo> pippos = new ArrayList<Pippo>();
...
Collections.sort(pippos, new PippoComparator());
...
e ti ritroverai l'ArrayList pippos ordinato in base allc chiave da te scelta. Ovviamente puoi aggiungere più chiavi di ordinamento all'interno della classe PippoComparator aggiungendo un po' di logica in più. Ad esempio, a parità di valoreChiave puoi confrontare un altro attributo ecc.