package jcf_set.exercise; import java.util.ArrayList; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.TreeSet; public class EsercizioParole { /* * EX1 del 27-01-2026 (I Appello) * Si scriva un metodo * public List DifferentWordsList(List) * che, data in input una lista di stringhe, restituisce una * nuova lista priva di elementi duplicati, contenente tutte le * stringhe distinte di list e ordinata per lunghezze decrescenti * (a parità di lunghezza ordinamento lessicografico crescente) */ public List DifferentWordsList(List lista) { Set listaOrd = new TreeSet(new Comparator() { @Override public int compare(String s1, String s2) { int l1 = s1.length(); int l2 = s2.length(); int cmp = Integer.compare(l2, l1); if (cmp != 0) return cmp; return s1.compareTo(s2); } }); if (lista == null || lista.isEmpty()) return new ArrayList(listaOrd); Iterator it = lista.iterator(); while (it.hasNext()) { listaOrd.add(it.next()); } return new ArrayList(listaOrd); } }