Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 26 su 26

Discussione: interface Collection<>

  1. #21
    Originariamente inviato da GianniMal
    adesso come faccio a stampare solo i prodotti che hanno lo sconto e il loro prezzo totale?
    cioè
    codice:
    ...
    
    // devo stampare solo quelli con lo sconto
    while(elenco.hasNext()){
    	if(cestino.elencoProdotti() instanceof ProdottoScontato2)
    		System.out.println(elenco.next());
    }
    		
    System.out.println("TOTALE : " + cestino.getTotale());
    ma è giusto usare instanceof ??
    Si è giusto, però non il modo in cui intendi usarlo.
    Il controllo devi farlo sulla singola istanza e non sull'intera collezione:
    codice:
    Iterator<Prodotto2> elenco = cestino.elencoProdotti();
    
    while( elenco.hasNext() ){
            Prodotto2 p = elenco.next();
    	if( p instanceof ProdottoScontato2 )
    		System.out.println( p );
    }

  2. #22
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    si ok solo però solo una cosa.
    Se provo a stampare entrambi gli elenchi mi stampa solo 1:
    codice:
    Iterator<Prodotto2> elenco = cestino.elencoProdotti();
    		
    while(elenco.hasNext()){
    	System.out.println(elenco.next());
    }
    		
    System.out.println("TOTALE : " + cestino.getTotale());
    System.out.println();
    
    Prezzo2 tot = new Prezzo2(0);
    while(elenco.hasNext()){
    Prodotto2 p = elenco.next();
           if(p instanceof ProdottoScontato2){
            	tot = tot.piu(p.getPrezzo());
    		System.out.println(p.toString());
            }
    }
    		
    System.out.println("TOTALE : " + tot);
    mi stampa così
    codice:
    latte € 2,50
    pasta € 7,25
    vino € 10,00 20% € 8,00
    pasta all'uovo € 12,50 25% € 9,38
    pasta all'uovo € 12,50 25% € 9,38
    caffe' macinato € 5,00
    caffe' macinato € 5,00
    caffe' macinato € 5,00 10% € 4,50
    caffe' macinato € 5,00 10% € 4,50
    TOTALE : € 55,50
    
    TOTALE : € 0,00
    come mai??

  3. #23
    Originariamente inviato da GianniMal
    Se provo a stampare entrambi gli elenchi mi stampa solo 1
    Devi re-istanziare l'iteratore:
    codice:
    elenco = cestino.elencoProdotti();

  4. #24
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    Vincenzo grazie mille ho finito l'esercizio.
    Mi puoi togliere solo questo dubbio per piacere...
    Sto facendo un esercizio diciamo simile che si occupa della gestione di una rubrica telefonica.
    nella classe RubricaTelefonica ho il seguente metodo :
    codice:
    private List<Contatto> elencoContatti; // collezione dei contatti nella rubrica
    
      public RubricaTelefonica() {
          // occorre inizializzare i campi della classe
    	  this.elencoContatti = new ArrayList<Contatto>();
    	  this.numeroContatti = 0;
      }
    
      public void addContatto(Contatto cont) {
     	if(!elencoContatti.contains(cont)){
        		elencoContatti.add(cont);
        		numeroContatti++;
        	}    		
        }
    quando vado ad eseguire il metodo addContatto mi aggiunge anche i duplicati...so che devo stare attento al metodo equals che fa i controlli per vedere se un contatto lo devo aggiungere o meno ma capisco come devo fare...

  5. #25
    Originariamente inviato da GianniMal
    so che devo stare attento al metodo equals che fa i controlli per vedere se un contatto lo devo aggiungere o meno ma capisco come devo fare...
    All'interno della classe Contatto ridefinisci il metodo equals:
    codice:
    @Override
    public boolean equals(Object o) {
             if( o == null || !(o instanceof Contatto) )
                 return false;
    
             // ... confronti i campi dei due oggetti
    }

  6. #26
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    Grazie Mille veramente

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.