Quote Originariamente inviata da Dario95 Visualizza il messaggio
Ehm si, questo è quello che pensavo anche io, ma...
Come dimostra anche l'output..
Questo è il metodo che utilizza il comparatore:
Mostra per cortesia le due classi Prodotto/ProdottoScontato ... a "naso" credo ci sia qualche questione lì.


Quote Originariamente inviata da Dario95 Visualizza il messaggio
codice:
public Iterator<Prodotto> getandOrderProdotti() {        
TreeSet<Prodotto> listaProdottiOrdinati = new TreeSet<>(new Comparatore());
        listaProdottiOrdinati.addAll(listaProdotti);
        return listaProdottiOrdinati.iterator();
      }
}
Questo tecnicamente è corretto. Ti dò solo 2 dritte:
- innanzitutto se hai pochi elementi non fa molta differenza ma se ne avessi tantissimi (migliaia ecc..), buttarli in un TreeSet solo per ordinarli è molto meno efficiente che clonare una lista ed ordinarla con il sort().
- se non vuoi fornire all'esterno del metodo la informazione che sotto-sotto hai una collezione ordinata, invece che Iterator puoi almeno indicare Iterable (i Set e i List sono Iterable)

public Iterable<Prodotto> getandOrderProdotti() {

In questo modo può essere il "target" del for-each e invece di usare l'iteratore esplicitamente, puoi fare:

for (Prodotto prodotto : fatt.getandOrderProdotti()) { .... }

bello no?