Visualizzazione dei risultati da 1 a 10 su 15

Visualizzazione discussione

  1. #5
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Più che "senza senso" sarebbe meglio dire "contorto" (e anche inutile). Cose del genere generalmente non si fanno.

    Tra l'altro guardando il Comparatore c'è una cosa che risulta molto evidente: non fai nulla di specifico con gli oggetti ProdottoScontato. Le due variabili prod1 e prod2 sono di tipo Prodotto (la classe base) che ha il getPrezzo() e solo su questo (che esiste anche in ProdottoScontato) basi la comparazione.

    Quindi: perché tutto questo contorcimento solo per comparare sul prezzo, che esiste sia per Prodotto che ProdottoScontato?


    P.S. e tra l'altro, visto che usi i generics, almeno parametrizza correttamente: Comparator<Prodotto> e poi il compare(Prodotto p1, Prodotto p2)
    E' proprio questo il punto della questione, ed il mio problema, anche se sembra non sia chiaro. Certo il primo Comparatore che ho scritto era:
    codice:
    class Comparatore implements Comparator<Prodotto>{
    
    
        public int compare(Prodotto prod1,Prodotto prod2){
                if(prod1.getPrezzo() > prod2.getPrezzo()){
                    return -1;
                }else if(prod1.getPrezzo() < prod2.getPrezzo()){
                    return 1;
                }else{
                    return 0;
                }
         }
    }
    Facile come bere un bicchier d'acqua.
    Ma questo comparatore mi ordina i Prodotti in ordine decrescente per prezzo e in ordine crescente per prezzo i ProdottoScontato, quindi all'inizio della collezione ho tutti ProdottoScontato in ordine crescente e dopo i Prodotto in ordine decrescente.
    Pensando fosse un problema di cast ho implementato il comparatore utilazzando quella serie di if e la funzione getclass(), ma il risultato non è cambiato. Come posso ordinare con lo stesso criterio sia i Prodotto che i ProdottoScontato?

    Infatti l'output con il comparatore proposto da @andbin è :
    codice:
    //CodiceProdotto Nome Prezzo
    18  ProdScontato 4.0
    9  Prod 10.0
    16  Prod 7.0
    14  Prod 6.0
    24  Prod 4.0
    25  Prod 3.0
    27  Prod 2.0
    Ultima modifica di Dario95; 08-02-2016 a 19:01

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 © 2025 vBulletin Solutions, Inc. All rights reserved.