Java中的永久集合

时间:2012-04-25 07:26:01

标签: java collections storage persistent

根据我的任务,要求建立一个小规模的学生住宿管理系统:

应该使用Student类和Apartment类使用面向对象的概念开发应用程序,为类实现适当的数据字段和方法。数据可以存储在集合中,即对象数组,向量等,或存储在除数据库之外的数据文件中。

到目前为止,我已经使用了套装。我不确定它是否正确,但我在课程中添加了HashSets。例如:

public static Set<Apartment> listOfApartments = new HashSet<Apartment>();
// in Apartment Class) 

现在我才意识到我实际上需要持久性集合或一些解决方案才能永久存储数据。

任何建议?

2 个答案:

答案 0 :(得分:3)

如果我在哪里,我会使用诸如ArrayList之类的东西来存储数据,尤其是学生。集合不允许重复数据,因此这可能会导致问题。

关于保存数据,您应该查看ObjectOutputStream来存储您的对象,并查看ObjectInputStream以将它们加载回您的应用程序。您可以查看here以获取ObjectStreams教程。

我建议使用XStream之类的东西(你可以看看如何使用它here)。这将允许您的应用程序以人类可读的方式存储数据(这有助于调试),并且还允许您的数据被不同的编程语言读取。

答案 1 :(得分:0)

如果AppartmentSerializable,那么Set<Apartment>也是Serializable,并且不需要任何额外的工作来使用java.io类来保留它

要创建Serializable类,您必须:

  1. 使其实现接口java.io.Serializable
  2. 添加默认构造函数
  3. 就这么简单