0

我使用 TreeMap 是因为它是存储我需要的信息的最有效的数据结构。我必须能够保留 TreeMap 以供将来使用,所以有没有办法将它存储在一个SharedPreferences对象中,也许在这样做之前对其进行序列化?

我在这里知道这种方法,但是ObjectSerializer从 Apache Pig 项目中使用会使 Eclipse 崩溃。当我运行该应用程序时,底部的状态栏永远不会超过消息“Launching [app name] 100%”,直到它抛出以下错误消息:

Unable to execute dex: Java heap space
Unhandled event loop execution

我可以做些什么来将 TreeMap 存储在共享首选项中吗?

4

1 回答 1

3

如果要序列化/反序列化,可以将 TreeMap 序列化为 JSON 格式作为字符串对象,然后将其存储在您想要存储的任何位置。稍后您将能够从 JSON 格式反序列化它。

您可以使用著名的杰克逊库,因为杰克逊库是行业标准并且是免费的。请参阅http://wiki.fasterxml.com/JacksonHome

编辑:JSON 格式还确保您可以读取其他程序中的持久数据,因为它非常可读。不确定 Jackson JSON 库是否适用于 android。如果是这样,请在 android 中找到其他一些 JSON 库。

于 2012-09-01T06:15:33.737 回答