Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Programmazione JAVA

Hybrid View

  1. #1
    Ciao ! La tua traccia mi ricorda molto la stessa che mi è capitata durante il mio esame di programmazione Java e guarda caso ho il codice corretto che ti serve.

    codice:
    public class Concessionario implements Iterable<Veicolo> {
    
    
        String nome, indirizzo;
        
        // TODO perchè una lista?
        List<Veicolo> listaVeicoli = new ArrayList<Veicolo>();
        
        public void addVeicolo(Veicolo mezzoDaAggiungere){
            listaVeicoli.add(mezzoDaAggiungere);
        }
        
        public void removeVeicolo(Veicolo veicoloDaRimuovere){
            listaVeicoli.remove(veicoloDaRimuovere);
        }
        
        // TODO si poteva fare con il getClass()
        public List<Veicolo> getByTipology(Veicolo veicoloCampione){
            
            List<Veicolo> listaStessaTipologia = new ArrayList<Veicolo>();
            
            for(Veicolo veicoloInEsame : listaVeicoli){
                
                if(veicoloCampione instanceof Automobile && veicoloInEsame instanceof Automobile){
                    listaStessaTipologia.add(veicoloInEsame);
                }else if(veicoloCampione instanceof Bicicletta && veicoloInEsame instanceof Bicicletta){
                    listaStessaTipologia.add(veicoloInEsame);
                }else if(veicoloCampione instanceof AutomobileFutura && veicoloInEsame instanceof AutomobileFutura){    //<- controllare se funge con un semplice else ! (per ottimizzare)
                    listaStessaTipologia.add(veicoloInEsame);
                }
                
            }    
            
            return listaStessaTipologia;
    
    
        }
    
    
        @Override
        public Iterator<Veicolo> iterator() {
            // TODO non era necessario il new Veicolo().
            Collections.sort(listaVeicoli, new Veicolo());    
            return listaVeicoli.iterator();
        }
    }

    Come vedi i commenti in TODO sono di correzione da parte del mio prof che effettivamente ci stanno.. Non ricordo bene il senso del primo TODO "Perchè una lista" ma credo si riferisse al List come tipo che poteva tranquillamente essere sostituito da un ArrayList..
    Il resto è abbastanza chiaro..

    Ecco anche la classe Veicolo

    codice:
    /**
     * 
     */
    package libreria;
    
    
    import java.util.Comparator;
    
    
    /**
     * @author studente
     *
     */
    
    
    public abstract class Veicolo implements Comparator<Veicolo> {
    
    
        String marca, modello;
    
    
        public abstract Number getEfficienza(){
            return null;
        }
        
        public String getMarca(){
            return marca;
        }
        
        public String getModello(){
            return modello;
        }
        
        Veicolo(String marcaInput, String modelloInput){
            marca     = marcaInput;
            modello    = modelloInput;
        }
    
    
        public Veicolo() {}
    
    
        @Override
        public int compare(Veicolo veicoloPrimo, Veicolo veicoloSecondo) {
    
    
            if(veicoloPrimo.getEfficienza().floatValue() > veicoloSecondo.getEfficienza().floatValue()){
                return -1;
            }else if(veicoloPrimo.getEfficienza().floatValue() == veicoloSecondo.getEfficienza().floatValue()){
                return 0;
            }else{
                return 1;
            }
    
    
        }
        
        @Override
        public String toString(){
            return "Veicolo:" + getMarca() + "(" + getModello() + ") > " + getEfficienza();
        }
    }
    Ultima modifica di LeleFT; 28-08-2017 a 13:10 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da SkyBlue Visualizza il messaggio
    guarda caso ho il codice corretto che ti serve.
    Innanzitutto dare agli altri le soluzioni non è una buona cosa .... darle poi sbagliate è ancora più brutto. La cosa, tra le altre, peggiore nel tuo codice è la implementazione del Comparator in Veicolo.
    Ma finché trovi prof. che ti fanno "passare" queste soluzioni ... sei a cavallo ...
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.