Java数据结构-复杂数组



我想用Java编写一个复杂的数据结构,在C++中可以称之为"结构数组",在Pascal中可以称为"记录数组"。

使用它的一个例子是为一家信用卡公司构建程序,该公司希望跟踪其所有客户及其信用余额等,例如:(我意识到我的数据类型在冒号的错误一侧)

array[1000] of  
{  CustomerName  : String ; 
AccountNo     : Integer ;
Balance       : Float ;
Overdue       : Boolean     }

我已经阅读了3本不同的Java手册,其中一本我在家里(Y.Liang),以及Barnes and Noble的另外两个项目,包括"SAMS在14天内学习Java"。SAMS Java手册在书的一半提到了一个"对象数组",他在书中讨论了ArrayList和HashTable,但这似乎并不能回答我的问题。

您应该创建一个类来封装您的数据:

public class Customer {
private String name;
private int accountNo;
private flaot balance;
private boolean isOverdue;
// Getters, setters, constructor...
}

然后你可以创建一个数组:

Custoer[] customers = new Customer[1000];

根据上面的答案进行扩展,创建一个类来保存数据(例如前面引用的公共类Customer)。

然后,您可以使用java.util.ArrayList.来代替固定长度的数组

java.util.ArrayList<Customer> list = new java.util.ArrayList<Customer>();
Customer newObject = new Customer();
... populate newObject.
list.add(newObject);

如果你想迭代列表,你可以这样做(或其他一些方法):

for (Customer customer: list) {
...
}

ArrayList被称为Container。C++的stdlib有自己的容器样式,所以您应该对此很熟悉。优点是它本质上是动态的——如果你做得更多,列表可以增长,你可以做list.size()来查看其中有多少项。

这比使用Customer[]数组要常见得多。

最新更新