我有一个名为ArrayList.data
的文件,用于存储哈希映射的arraylist。由于我正在使用的程序的限制,我无法一次添加所有数据,因为程序为每个用户创建一个新实例。要创建所有用户数据的arraylist,我需要打开文件,添加用户数据并关闭文件。
该文件仅包含散列图的arraylist。有没有办法每次都附加到这个hashmap,或者我是否需要继续用更新的附加版本替换它?
答案 0 :(得分:2)
您是否使用Java序列化来存储ArrayList
?不幸的是,这种机制不允许您以递增方式将数据添加到已经序列化的表单中。相反,您必须打开文件,反序列化整个ArrayList
,添加一个元素并将其序列化,覆盖文件中的先前数据。如果列表变大,这种方法是不可行的。
您可以做的是分别序列化每个HashMap
(单个ArrayList<Map<?, ?>>
项目)。这样,当必须序列化新项目时,您只需打开文件并最后添加这个新的Map
。如果要对其进行反序列化,只需逐个阅读每个Map
并重新构建ArrayList
。