|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
[Java] java.util.Collections.sort -- dubbio...
Ciao!
Volevo sapere se è corretto operare nel seguente modo: Codice:
java.util.Collections.sort( (LinkedList) tmpResults, new msmPlus_comparator()); Codice:
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; } } ![]() Cosa ho dimenticato?? thnks!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
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 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
Il codice era corretto.. sbagliavo io nella chiamata!
![]() Grazie |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:58.