嵌套数组在什么列表大小影响性能?

时间:2012-07-26 15:55:19

标签: android xml arrays performance nested

我正在构建一个应用程序,它将使用可扩展的列表视图作为主要用户界面,采用以下方式结构: *点菜:    - 劳斯莱斯:      +三文鱼      + 2.95      +金枪鱼     - Nigiri:      +三文鱼      + YellowTail

等。

我构建了一个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个元素)所以我想我会创建一组嵌套的arraylists,如下所示:

arraylist(types)包含(arraylist(options)包含(arraylist items)包含数组(name,price)。

这个结构重现了我将数据调用到ListView的顺序;它还与确认表中数据的呈现方式相匹配;它匹配SQLite的结构我将传递给服务器履行订单。

我的问题是,在此大小列表和嵌套数量上,应用程序的性能是否会严重耗尽?值得注意的是,这会扼杀电池寿命吗?

我真的很期待你的想法!

注意:要记住的一件事是我想将此结构重用于其他服务;比方说,我的自助餐厅有烧烤特色;我希望能够插入一个具有类似结构的XML文件(但不同的文本,因为它将以烧烤为主题)并且最少改变代码以便阅读它。

1 个答案:

答案 0 :(得分:0)

我看到四个嵌套的ArrayLists,这肯定会开始降低性能,并且它将使用额外的电池寿命来查找所有这些数组缺陷。考虑使用其他数据类型 - BasicNameValuePair表示(名称,价格),LinkedList表示项目,选项和类型。这将运行得更快。我可能会创建一个简单的Item类来保存BasicNameValuePair(名称,价格)以更好地组织程序。

如果顺序不重要,我肯定会使用HashMap而不是LinkedList,因为按名称放置和访问元素要快得多。

如果它们始终按字母顺序排列,请使用TreeMap,因为它快速闪耀并自动按字母顺序排列所有内容。