2012-07-26 73 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