【发布时间】:2022-01-14 11:17:40
【问题描述】:
在我的软件中,由于SQLite 中没有Array 数据类型,我将ArrayList 保存为String。现在我需要使用我的数组并将其转换回 ArrayList。我该怎么做?
这里是一个例子:
ArrayList<String> list = new ArrayList<String>();
list.add("name1");
list.add("name2");
list.add("name3");
list.add("name4");
list.add("name5");
list.add("name6");
String newList = list.toString();
System.out.println(newList);
结果:[name1, name2, name3, name4, name5, name6]
那么现在我怎样才能将其转换为ArrayList<String>?
【问题讨论】:
-
我认为你不想使用
toString,而是使用toArray -
将在 sql 中列为 blob 是一个不好的选择吗?
-
如果您的任何字符串包含逗号,则 toString() 转换是有损的,并且没有简单可靠的方法来恢复原始数组。
-
您应该小心使用
toString()进行序列化。如果您将"firstname, lastname"添加到您的列表中,则无法知道是否应该将其反序列化为["firstname, lastname"]或["firstname", "lastname"],因为toString()将为两者输出"[firstname, lastname]"。 -
有点,你有一个表用于你的主要对象(那些包含列表的对象),一个包含所有列表中的所有项目作为单独的行。第二个表中的每一行都包含对第一个表中存储其拥有对象的行的引用(如果顺序很重要,它是列表中的索引)。要重新组装对象,您首先从第一个表中加载对象,然后从第二个表中加载它的所有列表项。