Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7
    Ehm si, questo è quello che pensavo anche io, ma...
    Come dimostra anche l'output..
    Questo è il metodo che utilizza il comparatore:
    codice:
    public Iterator<Prodotto> getandOrderProdotti() {        
    TreeSet<Prodotto> listaProdottiOrdinati = new TreeSet<>(new Comparatore());
            listaProdottiOrdinati.addAll(listaProdotti);
            return listaProdottiOrdinati.iterator();
          }
    }
    listaProdotti è un ArrayList di Prodotto.

    Questo è il metodo che stampa l'output:
    Il primo ciclo si fa restituire l'iteratore dal metodo mostratovi qui sopra e ne stampa il contenuto.
    Il secondo ciclo stampa direttamente l'ArrayList di Prodotti così com'è senza ordinamento e con i duplicati.
    codice:
    for (Iterator<Prodotto> it = fatt.getandOrderProdotti() ; it.hasNext();) {
                System.out.println(it.next());
            }
            
            System.out.println();
            for(Prodotto prod: fatt.listaProdotti){
                System.out.println(prod);
            }
        }
    Ultima modifica di Dario95; 08-02-2016 a 19:13

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.