Rispondo in ordine sparso.

Quote Originariamente inviata da Dario95 Visualizza il messaggio
5)Tutto ciò però non mi spiega perchè mi ordina i ProdottoScontato in ordine crescente ed i Prodotto in ordine decrescente, sempre per prezzo..
Certo che lo spiega!! È proprio quella formula (sbagliata) che causa questo comportamento particolare ma improprio.

sconto * 100 / super.getPrezzo()

Essendo il prezzo originale al denominatore di una divisione, a parità di sconto, più il prezzo è grande, più il risultato è piccolo. Ed ecco il senso inverso rispetto al concetto espresso (giustamente) dal Comparatore.


Quote Originariamente inviata da Dario95 Visualizza il messaggio
2) si hai ragione non avevo notato che eliminasse quelli con lo stesso prezzo, teoricamente doveva eilimanre quelli con lo stesso codice, non avevo pensato che lui eilima quei elementi per i quali il comparator ritorna 0.
Sì, con TreeSet il senso del "senza duplicati" è sempre relativo al criterio di comparazione con Comparable oppure Comparator.

Quote Originariamente inviata da Dario95 Visualizza il messaggio
1) Non risponderò alle tue segnalazioni non perchè non siano giuste ma perchè fuorvianti rispetto alla domanda principale a cui non siamo ancora riusciti a dare una risposta. Non voglio giustificare le mie scelte, se è per questo ci sono troppe eccezioni, l'input doveva essere da un'altra parte ecc ecc, ma per ora fa nulla.
Per carità ... non ho nulla da obiettare se non accetti/gradisci dei consigli che potrebbero aiutarti a migliorare molto il tuo codice.
Presumo che alla fine riceverai un "voto" per l'esercizio. Il voto è tuo ... non mio. Se l'esercizio fosse per me, il codice sarebbe ragionevolmente impeccabile e il voto piuttosto alto.

Posso solo augurarti di ricevere il voto da qualcuno o non troppo competente o di manica molto larga ..