在第三章作业银行账户类的基础上,声明实现Comparble<T>接口,提供按照账户余领比较账户大小的方法; 同时,使用Comparator<T>接口声明比较器类Compare Name,按照账户名比较账户大小;编写main方法测试 相应的接口实现方法
时间: 2023-07-18 19:03:18 浏览: 141
好的,我来帮你完成这个任务。
首先,我们需要在银行账户类BankAccount中实现Comparable接口,代码如下:
```java
public class BankAccount implements Comparable<BankAccount> {
private String accountName;
private int accountNumber;
private double balance;
public BankAccount(String accountName, int accountNumber, double balance) {
this.accountName = accountName;
this.accountNumber = accountNumber;
this.balance = balance;
}
public String getAccountName() {
return accountName;
}
public int getAccountNumber() {
return accountNumber;
}
public double getBalance() {
return balance;
}
// 实现按照账户余领比较账户大小的方法
@Override
public int compareTo(BankAccount o) {
if (this.balance > o.getBalance()) {
return 1;
} else if (this.balance < o.getBalance()) {
return -1;
} else {
return 0;
}
}
}
```
接下来,我们需要使用Comparator接口声明比较器类CompareName,按照账户名比较账户大小,代码如下:
```java
import java.util.Comparator;
public class CompareName implements Comparator<BankAccount> {
@Override
public int compare(BankAccount o1, BankAccount o2) {
return o1.getAccountName().compareTo(o2.getAccountName());
}
}
```
最后,我们编写main方法测试相应的接口实现方法,代码如下:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<BankAccount> accountList = new ArrayList<>();
accountList.add(new BankAccount("Tom", 1001, 5000));
accountList.add(new BankAccount("Alice", 1002, 3000));
accountList.add(new BankAccount("Bob", 1003, 8000));
// 按照账户余领比较账户大小
Collections.sort(accountList);
System.out.println("按照账户余领比较账户大小:");
for (BankAccount account : accountList) {
System.out.println(account.getAccountName() + " " + account.getBalance());
}
// 按照账户名比较账户大小
CompareName compareName = new CompareName();
Collections.sort(accountList, compareName);
System.out.println("按照账户名比较账户大小:");
for (BankAccount account : accountList) {
System.out.println(account.getAccountName() + " " + account.getBalance());
}
}
}
```
输出结果如下:
```
按照账户余领比较账户大小:
Alice 3000.0
Tom 5000.0
Bob 8000.0
按照账户名比较账户大小:
Alice 3000.0
Bob 8000.0
Tom 5000.0
```
我们可以看到,按照账户余领比较账户大小时,账户的顺序是按照余领从小到大排序的;按照账户名比较账户大小时,账户的顺序是按照账户名字母顺序排序的。
阅读全文
相关推荐












