2011-02-18 76 views
0

我是Android新手。我需要将ArrayList或向量存储在数据库中(SQLite)作为其中一列的值。我搜索了关于存储数组列表或向量。在thant他们建议将arraylist转换成JSON。除了将ArrayList转换为JSON之外,是否还有其他解决方案?请给我一个关于这个问题的解决方案或文章。如何在Android中插入ArrayList或向量到SQLite数据库?

其非常紧急。请帮帮我。

回答

1

向量和列表是数据结构。 SQLite列只接受原子值,即数字,字符串和斑点。

因此,您需要将矢量/列表序列化(转换)为单个字符串或blob - 数字将不会执行任何操作。您将不得不使用唯一可逆的编码,并保留数据结构的任何特殊属性。

当然,你可以重新发明车轮并使用自己的编码。或者你可以通过使用Java序列化API来重新发明轮子。或者你可以使用类似JSON的东西,这是一个更有经验的解决方案。

但是,如果我是你,我首先考虑更改数据库模式。列表和向量足够接近关系模型,您可以将它们存储在数据库中而无需序列化技术。

编辑:

this questionthis one见。

+0

感谢您的快速回复先生.. – deepa

+0

斑点是如果你关心存储和检索的速度的大小要走的路......对于很多应用程序,这是正确的选择 –

+0

@ErikAronesty:这是真的,只要你不需要解决数据结构中的特定元素。为了每次获得几个元素而反复检索一个1,000,000个元素的列表将会非常低效。 – thkala

0

如何将内存对象存储到数据库? :)你应该序列化它的字符串。不管你会用什么。 xml,json,你自己的toString方法。只需选择对您更容易序列化和反序列化对象。 json似乎是一个好主意

1

首先,如果你有一个ArrayList或字符串的矢量。然后简单地遍历它并存储它的每个字符串,并通过应用程序逻辑进行管理。

如果它没有携带字符串,那么只需将ArrayList对象序列化到任何文件上。 并将文件名保留在数据库中

0

根据您的应用程序和使用情况,我会在数据库中为ArrayList数据创建一个单独的表(使用一对多或多对多关系),并分别查询它们。

是的,这都肯定会增加一些复杂应用程序,但是这将是一个更强大和容错解决方案(更不要说更优雅;-)的

但是,这是很难纠正了很简单的使用情况下不会出现重复的ArrayList项目...

相关问题