2012-07-26 87 views
0

我建設將使用一個可擴展的ListView作爲主用戶界面的應用程序,以下列方式結構: *點菜: - 羅爾斯: +三文魚 + 2.95 +金槍魚 - 壽司: +鮭 +鰤嵌套數組影響性能的列表大小是多少?

我構建XML的元素此結構相匹配,如下所示:

<type type = "A la Carte> 
    <option option = "Rolls"> 
    <item> 
    <name> Salmon</name> 
    <price> 2.95 </price> 
    </item> 
    </option> 
</type 

(不要關注任何xml錯誤 - 我從內存中輸入這個信息,但XML確實有效)。

我正在使用SAXParser來解析XML。問題是,我應該將數據解析爲什麼結構?

的菜單列表並不大(共跨類100元的),所以我想我會創建一組嵌套的ArrayList如下:

的ArrayList(類型)包含(數組列表(選項)包含(數組列表項目)包含數組(名稱,價格)

該結構重現了我將調用數據到ListView的順序;它還匹配數據在確認表中的顯示方式;它匹配我將SQLite的結構傳遞給服務器,完成訂單。

我的問題在這個尺寸列表和這個嵌套量上,應用程序的性能會嚴重耗盡嗎?值得注意的是,這會咀嚼電池壽命嗎?

我真的很期待你的想法!

注意:有一點需要記住的是我想重用這個結構用於其他服務;例如,讓我們說我的食堂有一個特別的燒烤場;我希望能夠插入具有類似結構的XML文件(但由於它將以燒烤爲主題,因此文本不同),並最小化地更改代碼以便讀取它。

回答

0

我看到四個嵌套ArrayLists,它肯定會開始降低性能,並且它會使用額外的電池壽命來查找所有這些數組元素。考慮使用其他數據類型 - 對於(名稱,價格)使用BasicNameValuePair,對於項目,選項和類型使用LinkedList。這將運行得更快。我可能會創建一個簡單的Item類來保存BasicNameValuePair(name,price)以更好地組織程序。

如果順序不重要,我肯定會使用HashMap而不是LinkedList,因爲按名稱放置和訪問元素要快得多。

如果它們總是按照字母順序排列,請使用TreeMap,因爲它正在快速生成並自動將所有內容按字母順序排列。

+0

謝謝你的幫助安迪! – Laurent 2012-07-26 17:00:49