繁体   English   中英

用抽象类对列表进行排序

[英]Sorting lists with abstract class

在将以下抽象类及其扩展的元素降序排序时,我遇到了一些困难。

package BankServices;
public abstract class Operation {

public abstract String toString();
}

package BankServices;

public class Deposit extends Operation implements Comparable{
private int date; //date on which the deposit was made
private double value;  //deposit value    
public Deposit (int date, double value){
       this.date = date;
       this.value = value;
}
public double getValue(){
       return value;
}
@Override
public String toString() {
       // TODO Auto-generated method stub
       return date+ "," + value+ "+";
}
}

package BankServices;

public class Withdrawal extends Operation{
private int date; //date on which the sum (value) has been withdrawn
private double value;
public Withdrawal (int date, double value){
this.date = date;
this.value = value;
}
public double getValue(){
       return value;
}
@Override
public String toString() {
       // TODO Auto-generated method stub
       return date + "," + value + "-";
 } 
 }

`我必须实现主类的这些方法,以降序返回排序后的列表:

public List<Operation> getMovements() {}
public List<Deposit> getDeposits() {}
public List<Withdrawal> getWithdrawals() {}

第一个返回按日期排序的List,而getDeposits()和getWithdrawals()返回按值排序的List和List。请问如何提出使其正确无误的建议? 提前非常感谢您。

您可以使用Collection.sort并根据需要每次给它一个新的比较器:

    Collections.sort(yourList, new Comparator<Operation>(){
       public int compare(Operation o1, Operation o2) {
         //Here implement each comparator as you need        
  }

请记住,您可能需要将日期和值推入操作超类,因为它们在两个子类中都是通用的,您将在比较器中使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM