PDA

View Full Version : [JAVA]


torettp
10-02-2009, 09:14
ciao, volevo un po di aiuto nell ordinare un ArrayList(in ordine per prezzo), la mia idea era quella di cercare il minimo ed aggiungerlo in un altro array, perņ per cercare il "minimo" successivo devo eliminare l' oggetto "precedente"(spero di essemi spiegato) quando vado ad eliminare quell' oggetto, mi elimina sempre l' ultimo della lista.
chiedendo alla prof(gli avevo chiesto se potevo farlo implementando la classe Collections, ha risposto ke ai fini dell' esame non vale....) mi ha consigliato di cercare il max nella arrayList, e invertire le posizioni(mettendolo alla fine), e poi "scannerizzare" n-1 elemeti(escluso l' ultimo) perņ, quando cambio la lunghezza dell array il ciclo for mi da erore(es. index 4 size 4);
potete darmi un aiuto grazie.
spero di essere stato il piu chiaro possibile.

eccovi il mio codice (soluzione con 2 ArrayList)

public ArrayList ordina(){
ArrayList risultato = this.cercaNome("Dante");
ArrayList nuova = new ArrayList();
int size = risultato.size();
for(int i = 0; i < size; i++){
System.out.println(size);
System.out.println(i);
int libroMin = getMax2(risultato);
nuova.add((Libro)risultato.get(libroMin));
System.out.println("Libro: "+libroMin );
System.out.println("lunghezza risultato prima: "+risultato.size());
risultato.remove(getMax2(risultato));
System.out.println("lunghezza risultato: "+risultato.size());
}
return nuova;

}

le system.out.println sono per vedere cosa fa il metodo tipo log

la classe cercaNome, restitusce un ArrayList che contiene tutti i libri dell autore(in questo caso Dante)
la classe getMax, restituisce il libro con prezzo min (lo so che il nome č ambiguo ma avrei dovuto cambiare molte altre cose)

cionci
10-02-2009, 11:33
Non hai specificato niente nel titolo oltre al linguaggio. Thread chiuso