gpt4 book ai didi

java - 通过对象实例中包含的变量而不是数组编号来搜索数组?

转载 作者:行者123 更新时间:2023-12-01 14:44:11 26 4
gpt4 key购买 nike

我正在为一家名为“客户”的公司创建一系列客户帐户。我有一个名为 getGasAccount 的方法,它将计算数组中的帐户数量。

我在程序类中声明变量为:

final int MAXACCOUNTS = 10;
int intNUmber, intSelectAccount;

我使用以下方式设置帐户:

if (GasAccount.getGasAccount() < MAXACCOUNTS) {
intSelectAccount = GasAccount.getBankAccount()++;
customers[intSelectAccount] = new GasAccount();
}

我希望能够通过调用构造函数时手动输入的帐号来搜索客户。我不想通过 intSelectAocunt/array 引用进行搜索。

如果我有一个名为 displayAccountDetails 的方法,是否有另一种方法来查找帐户而不是使用:

customers[intSelectAccount].displayAccountDetails();

最佳答案

像这样在 GasAccount 中实现 equals 方法

public boolean equals(Object objToCompare){
if (objToCompare != null){
return objToCompare instanceof GasAccount && ((GasAccount)objToCompare).getAccountNumber() == getAccountNumber();
}else{
return false;
}
}

现在查找数组中 GasAccount 对象的位置并显示帐户详细信息:

java.util.List<GasAccount> gasAccountsList = (java.util.List<GasAccount>)java.util.Arrays.asList(customers);
int objectIndex = gasAccountsList.indexOf([Gas Account Object]);
if (objectIndex != -1){
gasAccountsList.get(objectIndex).displayAccountDetails();
}

jahroy 建议的另一种按帐号搜索的简单方法是:

public void getAccountDetails(int accountNumber){
java.util.List<GasAccount> gasAccountsList = (java.util.List<GasAccount>)java.util.Arrays.asList(customers);
for(GasAccount gasAccountObj : gasAccountsList){
if(gasAccountObj.getAccountNumber() == accountNumber){
gasAccountObj.displayAccountDetails();
break;
}
}
}

或者

public void getAccountDetails(int accountNumber){
for(GasAccount gasAccountObj : customers){
if(gasAccountObj.getAccountNumber() == accountNumber){
gasAccountObj.displayAccountDetails();
break;
}
}
}

关于java - 通过对象实例中包含的变量而不是数组编号来搜索数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15621578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com