用java编写,在银行账户类的基础上,声明实现Comparble<T>接口,提供按照账户余额比较账户大小的方法;同时,使用Comparator<T>接口声明比较器类CompareName,按照账户名比较账户大小;编写main方法测试相应的接口实现方法。
时间: 2023-07-18 15:34:47 浏览: 104
好的,我来解答你的问题。
首先,我们先定义一个银行账户类Account,其中包含账户名、账户余额两个属性:
```java
public class Account {
private String name; // 账户名
private double balance; // 账户余额
public Account(String name, double balance) {
this.name = name;
this.balance = balance;
}
// getter and setter methods
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;
}
// toString method
@Override
public String toString() {
return "Account{" +
"name='" + name + '\'' +
", balance=" + balance +
'}';
}
}
```
接着,我们让Account类实现Comparable<Account>接口,按照账户余额比较账户大小:
```java
public class Account implements Comparable<Account> {
// ...
@Override
public int compareTo(Account o) {
return Double.compare(this.balance, o.balance);
}
}
```
然后,我们再定义一个比较器类CompareName,按照账户名比较账户大小:
```java
public class CompareName implements Comparator<Account> {
@Override
public int compare(Account o1, Account o2) {
return o1.getName().compareTo(o2.getName());
}
}
```
最后,我们在main方法中测试相应的接口实现方法:
```java
public static void main(String[] args) {
Account a1 = new Account("Tom", 1000);
Account a2 = new Account("Jerry", 500);
Account a3 = new Account("Bob", 2000);
// 按照账户余额比较账户大小
System.out.println("按照账户余额比较账户大小:");
List<Account> list1 = new ArrayList<>();
list1.add(a1);
list1.add(a2);
list1.add(a3);
Collections.sort(list1);
System.out.println(list1);
// 按照账户名比较账户大小
System.out.println("按照账户名比较账户大小:");
List<Account> list2 = new ArrayList<>();
list2.add(a1);
list2.add(a2);
list2.add(a3);
CompareName compareName = new CompareName();
Collections.sort(list2, compareName);
System.out.println(list2);
}
```
输出结果如下:
```
按照账户余额比较账户大小:
[Account{name='Jerry', balance=500.0}, Account{name='Tom', balance=1000.0}, Account{name='Bob', balance=2000.0}]
按照账户名比较账户大小:
[Account{name='Bob', balance=2000.0}, Account{name='Jerry', balance=500.0}, Account{name='Tom', balance=1000.0}]
```
以上就是Java编写银行账户类,并实现Comparable<T>和Comparator<T>接口的方法,希望能帮到你。
阅读全文