我对java很陌生,所以我只是练习了一些我学过的东西,并且正在制作一个存储客户账户等的银行计划。这是我的第一步一个名为" accounts"类型为Customer的类型,我在该类中创建了3个用户名,密码和帐号的args。
我想让这个数组以这种方式存储所有客户,正如您可以从方法" addAcc"中看到的那样。在这里,我将新的客户对象添加到客户类型数组中作为第一个元素,但我不确定如何在NEXT数组索引处添加下一个客户,如何在下次调用此方法时更新索引添加其他用户?或者还有另一种方法可以解决这个问题吗?
public class Bank {
private double interest_rate = 1.01; // interest rate
private Customer[] accounts = new Customer[1000]; // array to store accounts
// adds new customer
public void addAcc (String user, String pass, int accNum) {
Customer accID = new Customer(user,pass,accNum);
this.accounts[0] = accID;
}
答案 0 :(得分:2)
只需创建一个计数器变量,它将跟踪已添加的客户数量
public class Bank {
private double interest_rate = 1.01; // interest rate
private Customer[] accounts = new Customer[1000]; // array to store accounts
private int counter=0;
// adds new customer
public void addAcc (String user, String pass, int accNum) {
Customer accID = new Customer(user,pass,accNum);
this.accounts[counter++] = accID;
}
答案 1 :(得分:1)
更好的解决方案是使用ArrayList
:
public class Bank {
private double interest_rate = 1.01;
private List<Customer> accounts = new ArrayList<>();
public void addAcc (String user, String pass, int accNum) {
Customer accID = new Customer(user, pass, accNum);
this.accounts.add(accID);
}
}
此解决方案也更安全,因为数组列表会根据需要动态调整自身大小。使用阵列的第一个解决方案,当达到阵列的容量时会出现错误。
作为记录,作为一个劣等的替代方案,你可以保持计数:
public class Bank {
private double interest_rate = 1.01; // interest rate
private Customer[] accounts = new Customer[1000]; // array to store accounts
private lastIndex = -1;
// adds new customer
public void addAcc (String user, String pass, int accNum) {
Customer accID = new Customer(user,pass,accNum);
this.accounts[++lastIndex] = accID;
}
}
答案 2 :(得分:0)
最好使用Collection而不是数组。可能是一个ArrayList 但是,如果您仍然喜欢使用数组并继续,那么您必须检查下一个数组元素是什么,并将新对象添加到该数组元素。为此,您可以每次都浏览数组,或者在添加帐户时使用索引并更新该索引
e.g。
public class Bank {
private static nextIndex = 0;
private double interest_rate = 1.01; // interest rate
private Customer[] accounts = new Customer[1000]; // array to store accounts
// adds new customer
public void addAcc (String user, String pass, int accNum) {
Customer accID = new Customer(user,pass,accNum);
this.accounts[nextIndex++] = accID;
}