我已经为此工作了几个小时,我觉得(我希望)我即将解决这个问题。这个程序从一个外部文件中读取一堆值,并将它们放在一个对象数组中,这似乎工作得很好。
对象属性是:
银行帐户 # 客户名称 银行帐户余额
1.我可以按照账号#的顺序输出(这是他们从文件中读取的方式,不需要排序)
2.我已经设置了一个方法,从实现 Comparable 到按银行账户余额排序,它工作正常。
3.我需要第二种排序方法,按客户名称排序。- 我遇到的问题是基于我所做的研究和我所尝试的我得出的结论是,完成这项工作的唯一方法是构建我自己的可比较对象(对不起,如果我的术语有偏差。)我也多次尝试过 Java Doc 和 SE 上的一些类似问题。
当一切都说完了,我将把一些监听器放入我的复选框组中,以允许用户切换不同的排序方法。
这是我正在处理的块:
public class bankAccounts implements Comparable<bankAccounts> {
/* PRIVATE FIELDS HERE, FOLLOWED BY TYPICAL GET AND SET METHODS */
/*SORTS BY ACCOUNT BALANCE WORKING GREAT*/
public int compareTo(bankAccounts b) {
if (accountBalance < b.accountBalance)
{
return -1;
}
if (accountBalance > b.accountBalance) {
return 1;
}
return 0;
}
/* BEGIN SNIPPET OF MAIN CLASS */
/*METHOD I CALL FROM MAIN CLASS, SORTS BY BALANCE ^^ AS SEEN ABOVE */
Arrays.sort(retrievedAccounts);
for (int i=0; i<retrievedAccounts.length; i++) {
String resultFull = Integer.toString(retrievedAccounts[i].getAccountNumber()) + retrievedAccounts[i].getAccountLastName() + Double.toString(retrievedAccounts[i].getAccountBalance());
box.append(resultFull + "\n");
}
/* NORMAL METHOD WHICH OUTPUTS IN ORDER OF ACCOUNT NUMBER, NO SORTING HAPPENING HERE */
for(int x = 0; x < retrievedAccounts.length; ++x)
{
String resultFull=Integer.toString(retrievedAccounts[x].getAccountNumber()) + retrievedAccounts[x].getAccountLastName() + Double.toString(retrievedAccounts[x].getAccountBalance());
box.append("\n\n\n" + resultFull + "\n\n");
}
我希望有人会对下一步有所了解,这可能会让我完成这项工作。如果您有建议采取完全不同的方向,我也对此持开放态度。