PDA

View Full Version : [Java] java.util.Collections.sort -- dubbio...


shang84
26-11-2005, 18:06
Ciao!
Volevo sapere se č corretto operare nel seguente modo:

java.util.Collections.sort( (LinkedList) tmpResults, new msmPlus_comparator());

dove msmPlus_comparator() e fatto cosė:


import java.util.Comparator;

public class msmPlus_comparator implements Comparator {
public msmPlus_comparator() {
}

/**
* returns 0 if the two MsmSpectra have the same number of complementary ions
* a value <0 if the first spectra has less complementary ions than the second
* a value >0 elsewhere
*
* @param anMsmSpectra1 Object
* @param anMsmSpe<tra2 Object
* @return int 0, <0 o >0
*/
public int compare(Object anMsmSpectra1, Object anMsmSpectra2) {
MsmSpectra one = (MsmSpectra) anMsmSpectra1;
MsmSpectra two = (MsmSpectra) anMsmSpectra2;

if(one.total_number_of_ions == two.total_number_of_ions)
return 0;
else if(one.total_number_of_ions < two.total_number_of_ions)
return -1;
else if(one.total_number_of_ions > two.total_number_of_ions)
return 1;
else return 0;
}
}


:confused: non mi ordina la lista!

Cosa ho dimenticato??

thnks!!

sottovento
30-11-2005, 13:45
Ciao!
Ho copiato ed incollato il tuo codice, vista la curiosita' (non vedevo alcun bachetto).
Ho definito le parti che mancavano (la MsmSpectra, definita con un solo campo intero, il "total_number_of_ions") e funziona correttamente, ordinando la lista.

Potrebbe essere un problema di versione (uso ancora la j2sdk1.4.1_02, magari se ne usi una nuova ci potrebbe essere un baco o possono essere cambiate le API, vista l'introduzione dei template....) o di semplice interpretazione dei dati. Parti ovviamente a controllare le ipotesi piu' semplici....

High Flying
Sottovento

shang84
30-11-2005, 19:36
Il codice era corretto.. sbagliavo io nella chiamata! :)

Grazie