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:
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!