我有一个类可以包含列表中的许多小元素。看起来像:处理非常大的没有分页的对象列表?
public class Farm {
private ArrayList<Horse> mHorses;
}
只是想知道如果mHorses阵列发展到像15000元素一样疯狂会发生什么。我假设试图从数据存储中写入和读取它会很疯狂,因为我会在序列化过程中遇害。
,我可以得到一个镜头,整个阵列无需分页是很重要的,而每匹马元素只可以在它有两个字符串属性,因此它们是相当轻巧:
public class Horse {
private String mId;
private String mName;
}
我不需要这些马都是索引的。将mHorse数组存储为原始文本字段并强制客户端执行反序列化是否合理?喜欢的东西:
public class Farm {
private Text mHorsesSerialized;
}
那么只要客户端收到一个农场的实例,它必须采取马的原始字符串,它以拆分重新实例列表,像:
// GWT client perhaps
Farm farm = rpcCall.getMyFarm();
String horsesSerialized = farm.getHorses();
String[] horseBlocks = horsesSerialized.split(",");
for (int i = 0; i < horseBlocks.length; i++) {
// .. continue deserializing the individual objects ...
}
耶...
所以希望它会很快地从数据库中读取一个农场实例,并且序列处罚由客户支付,
感谢
为什么不使用逗号分隔值文件?在Java和Python中,您可以使用流打开文本文件并逐行读取。缓冲将为您完成。所以,不需要一次将整个数组加载到内存中。你为什么?你会用它做什么?如果你想避免分页,那么把它分成适当大小的块。顺便说一句,这是如何与谷歌引擎相关? – 2010-04-23 04:04:14
为什么你不页面这么重要? – 2010-04-23 04:06:46
@Hamish推测他是在App Engine应用程序中这样做的,这可能会影响他如何做某些事情。 – 2010-04-23 04:07:57