E dove è Comparable e la relativa implementazione? E cosa usi per l'ordinamento? (immagini Collections.sort ma non l'hai detto)
P.S. quando si fa una classe come la tua ElencoRegali che rappresenta una collezione ma al cui interno hai tanti set/get per settare/leggere un attributo di un elemento i-esimo, questo generalmente non è una bella/buona cosa. Perché vuol dire che la tua classe ha più di una responsabilità. I cast espliciti a (Regalo) tra l'altro non servirebbero neanche.