Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Programmazione JAVA

Visualizzazione discussione

  1. #5
    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

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.