Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    Ordinamento con classe astratta

    Ciao! Ho un problema con l'ordinamento di 3 liste con la presenza di una classe astratta. Mi chiedono di creare due liste di oggetti Deposit e Withdrawal ordinate per cifra decrescente e una lista di oggetti Operation ordinate per dataop decrescente.
    Ho provato a fare nel seguente modo. Non mi da nessun errore di compilazione ma non ordina le liste.

    codice:
    
    
    codice:
    public abstract class Operation {
        
        public Operation (int dataop, double cifra){
        }
        
        public abstract double getCifra();
        public abstract int getDataop();
        public abstract String toString();
    }
    
    public class Deposit extends Operation {
        private int dataop;
        private int cifra;
        
        public Deposit(int dataop, double cifra) {
            super(dataop, cifra);
            // TODO Auto-generated constructor stub
        }
    
    
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return dataop + "," + cifra + "+";
        }
    
    
        @Override
        public double getCifra() {
            // TODO Auto-generated method stub
            return cifra;
        }
    
    
        @Override
        public int getDataop() {
            // TODO Auto-generated method stub
            return dataop;
        }
    }
    
    
    public class Withdrawal extends Operation{
        private int dataop;
        private double cifra;
        
        public Withdrawal(int dataop, double cifra) {
            super(dataop, cifra);
            // TODO Auto-generated constructor stub
        }
    
    
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return dataop + "," + cifra + "-";
        }
    
    
        @Override
        public double getCifra() {
            // TODO Auto-generated method stub
            return cifra;
        }
    
    
        @Override
        public int getDataop() {
            // TODO Auto-generated method stub
            return dataop;
        }    
    }

    Questi sono i metodi nella classe principale che dovrebbero restituire le liste ordinate:

    codice:
    public List<Operation> getMovements() {
            Collections.sort(operazioni, new Comparator<Operation>(){
                public int compare(Operation a, Operation b){
                    return (int) (b.getDataop() - a.getDataop());
                }
            });
            return operazioni;
        }
        
        public List<Deposit> getDeposits() {
            Collections.sort(versamenti, new Comparator<Operation>(){
                public int compare(Operation a, Operation b){
                    return Double.valueOf(b.getCifra()).compareTo(Double.valueOf(a.getCifra()));
                }
            });
            return versamenti;
        }
    
    
        public List<Withdrawal> getWithdrawals() {
            Collections.sort(prelievi, new Comparator<Operation>(){
                public int compare (Operation a, Operation b){
                    return Double.valueOf(b.getCifra()).compareTo(Double.valueOf(a.getCifra()));
                }
            });
            return prelievi;
        }


    Non capisco dov'è l'errore!
    Ultima modifica di LeleFT; 14-09-2015 a 13:39 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 © 2026 vBulletin Solutions, Inc. All rights reserved.