|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Gières
Messaggi: 3617
|
[java] ordinare arraylist
ho questa classe:
Codice:
public class Evaluation {
ArrayList<Researcher> researchers;
ArrayList <Journal>journals;
}
Codice:
public Collection<Journal> getJournalsByIF(){
Collections.sort(journals);
return journals;
}
Codice:
public class Journal implements Comparable<Journal>{
private String issn;
private String title;
private double impactfactor;
ArrayList <Article>articles;
}
Codice:
public int compareTo(Journal o) {
double compare = o.impactfactor - this.impactfactor;
return (int)compare;
}
chi mi può dare una mano chiarificandomi cosa sbaglio concettualmente?? grazie
__________________
Intel i5 4570 - Gigabyte Z87-HD3 - Antec KÜHLER 620 V4 - Corsair/Kingston 16GB DDR3 1600Mhz - KFA2 GTX 1070 EX @ EXOC bios - SanDisk Ultra II 480GB - EVGA 650GQ - Sony KDL-24EX320 - Logitech G502 & G933 - SteelSeries APEX M500 - W10 64bit Ultima modifica di blindwrite : 24-01-2009 alle 01:43. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
In che senso non funziona?
Non ti ordina il tuo ArrayList, o te lo ordina in modo scorretto? Saluti
__________________
iMac 27" 5K |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi compareTo deve ritornare: < 0 se this < altroOggetto > 0 se this > altroOggetto = 0 se this = altroOggetto Chiaramente sei anche libero di "girare" la cosa al contrario se vuoi l'ordinamento inverso. Nel tuo codice se o.impactfactor=10 e this.impactfactor=2 tu ritorneresti > 0 e quindi l'oggetto con il 2 verrebbe visto come "più grande" di quello con il 10. Volevi proprio così??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Gières
Messaggi: 3617
|
Quote:
Ho perso ore per una cavolata del genere!! è proprio vero che le cose più banali sono quelle che ti portano via più tempo. Grazie ancora!!!
__________________
Intel i5 4570 - Gigabyte Z87-HD3 - Antec KÜHLER 620 V4 - Corsair/Kingston 16GB DDR3 1600Mhz - KFA2 GTX 1070 EX @ EXOC bios - SanDisk Ultra II 480GB - EVGA 650GQ - Sony KDL-24EX320 - Logitech G502 & G933 - SteelSeries APEX M500 - W10 64bit |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:04.




















