我有一個類可以包含列表中的許多小元素。看起來像:處理非常大的沒有分頁的對象列表?
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