AleX3mE ha scritto:
Ora però devo eliminare i duplicati, da quanto ho capito serve un ciclo for e un if giusto?
No, non è così banale/immediato. Ci sono svariate soluzioni, da quelle peggiori come performance fino a quelle più "furbe" ed efficienti.
Ne dico alcune, giusto quelle che mi vengono in mente ora.
Presupponiamo di avere una lista di ingresso (con duplicati) e una nuova lista in uscita (senza duplicati).
a) Per ciascun elemento nella lista in ingresso vai a cercare se esiste nella lista in uscita. Se non c'è lo aggiungi nella lista in uscita, se c'è non fai nulla. Questa è quella peggiore come prestazioni.
b) Sfrutti una mappa dove la chiave è il lato e il valore è l'oggetto Quadrato. Anche qui, per ciascun elemento nella lista in ingresso vai a vedere se c'è il lato nella mappa. Se non c'è, inserisci. Se c'è non fai nulla. Alla fine metti i valori della mappa in una lista.
c) Sfrutti un HashSet, butti tutti gli elementi nel HashSet dove non ci possono essere duplicati. Ma il senso del "non ha duplicati" è basato sulla corretta implementazione di equals() e hashCode(). Quindi la tua classe Quadrato DEVE implementare (ridefinire) appropriatamente questi due metodi di Object.
Alla fine butti il contenuto del HashSet in una lista.
Scegli tu ...