E fin qui, mi pare ovvio... un array (un ArrayList) è una "collezione" di oggetti... ciascun oggetto (contenuto nell'array) sa come compararsi agli altri.
E anche qui mi pare ovvio... se devi ordinare una collezione di oggetti, al metodo sort() passerai la collezione di oggetti da ordinare... cioè la lista.in più il metodo Collections.sort() richiede obbligatoriamente come parametro una lista.. ma non accetta l'arraylist
Nota però che il metodo sort() accetta una lista di oggetti comparabili, non una lista comparabile: ciò che può essere comparato è il contenuto (l'oggetto), non il contenitore (la lista). Quindi, Comparable va implementata dalla classe Regalo... perchè sono i Regali che possono essere comparati tra di loro.
Fatto questo, al metodo sort() potrai passare un ArrayList di oggetti Regalo ( ArrayList<Regalo> ), ed il metodo li ordinerà secondo l'ordinamento "naturale", imposto dall'interfaccia Comparable.
Il primo passo, quindi, è implementare Comparable nella classe Regalo... fallo e posta la classe, così vediamo se l'hai implementata correttamente (è la parte più importante e "ostica").
Ciao.![]()




Rispondi quotando