IDanielZito ha scritto:
Ho la necessità di fare più ordinamenti, come dicevo prima per titolo poi per voto, nel caso usassi un Comparator (è una interfaccia giusto?) come dovrei usare questa classe? Cosa scrivere all'interno del codice?
In generale:
-
Comparable va implementato nella classe degli oggetti da comparare (nel tuo caso Libro, quindi è Libro che farebbe
implements Comparable<Libro> ). Di criterio con Comparable quindi ce ne può essere uno solo (dovrebbe essere l'ordinamento "naturale" degli oggetti)
-
Comparator va implementato in classi separate dalla classe degli oggetti da comparare. Quindi ne puoi avere N, quanti ne vuoi.
Es.
public class LibriPerDescrizioneComparator implements Comparator<Libro> { .... }
public class LibriPerDataPubblicazioneComparator implements Comparator<Libro> { .... }
ecc... (dai alle classi i nomi che vuoi, ovviamente)
Dentro implementi il compare, che grazie all'uso della parametrizzazione <Libro> ha la forma:
public int compare(Libro libro1, Libro libro2)
Quando poi ordinerai una lista es.:
Collections.sort(listaLibri, new LibriPerDataPubblicazioneComparator());
Tutto qui.