Ciao ragazzi, qualcuno potrebbe chiarirmi un dubbio:
in un programma che sto facendo ho una lista di chiavi e valori, vorrei ordinare la lista facendo
Collections.sort(miaLista, mioComparatore);
A questo punto vado a creare mioComparatore in questo modo:
Comparator<Map.Entry<String, Integer>> comp=new Comparator<Map.Entry<String,Integer>>() {
public int compare(Entry<String, Integer> arg0, Entry<String, Integer> arg1) {
if(arg0.getValue()>arg1.getValue()) return 1;
if(arg0.getValue()<arg1.getValue()) return -1;
int cmp=arg0.getKey().compareTo(arg1.getKey());
return cmp;
}
};
La mia domanda è: perchè se eseguo il codice con questo comparatore, nel dettaglio con questi return +1/-1, mi da esattamente l'ordine inverso?
Mentre se inverto il return +1 con il -1 funziona?
Andandomi a leggere la documentazione del metodo public int compare(arg0, arg1) dice che il metodo restituisce un intero maggiore di zero se arg0>arg1 ecc ecc...e allora non capisco perchè faccia esattamente l'opposto.
Grazie a tutti in anticipo per l'aiuto.