用java编写,在银行账户类的基础上,声明实现Comparble<T>接口,提供按照账户余额比较账户大小的方法,使用Comparator<T>接口声明比较器类CompareName,按照账户名比较账户大小,编写main方法测试相应的接口实现方法。
时间: 2023-07-18 09:34:48 浏览: 113
好的,我来解答你的问题。
首先,我们需要定义一个银行账户类,包含账户名和账户余额两个属性,代码如下:
```java
public class BankAccount implements Comparable<BankAccount> {
private String name; // 账户名
private double balance; // 账户余额
public BankAccount(String name, double balance) {
this.name = name;
this.balance = balance;
}
// 比较账户大小的方法,按照账户余额比较
@Override
public int compareTo(BankAccount o) {
return Double.compare(this.balance, o.balance);
}
// Getter and Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
```
可以看到,我们实现了 `Comparable<BankAccount>` 接口,并重写了 `compareTo` 方法,按照账户余额比较大小。
接下来,我们需要定义一个比较器类 `CompareName`,按照账户名比较大小,代码如下:
```java
import java.util.Comparator;
public class CompareName implements Comparator<BankAccount> {
@Override
public int compare(BankAccount o1, BankAccount o2) {
return o1.getName().compareTo(o2.getName());
}
}
```
可以看到,我们实现了 `Comparator<BankAccount>` 接口,并重写了 `compare` 方法,按照账户名比较大小。
最后,我们编写 `main` 方法测试相应的接口实现方法,代码如下:
```java
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
BankAccount[] accounts = new BankAccount[] {
new BankAccount("Tom", 1000),
new BankAccount("Jerry", 2000),
new BankAccount("Lucy", 500),
new BankAccount("Mike", 1500),
};
// 按照账户余额排序
Arrays.sort(accounts);
for (BankAccount account : accounts) {
System.out.println(account.getName() + ": " + account.getBalance());
}
System.out.println("--------------------");
// 按照账户名排序
Arrays.sort(accounts, new CompareName());
for (BankAccount account : accounts) {
System.out.println(account.getName() + ": " + account.getBalance());
}
}
}
```
输出结果如下:
```
Lucy: 500.0
Tom: 1000.0
Mike: 1500.0
Jerry: 2000.0
--------------------
Jerry: 2000.0
Lucy: 500.0
Mike: 1500.0
Tom: 1000.0
```
可以看到,我们成功地实现了按照账户余额和账户名比较大小的功能。
阅读全文
相关推荐










