0

我正在构建一个应用程序,它将使用可扩展的列表视图作为主用户界面,结构如下:*点菜:-劳斯莱斯:+鲑鱼+ 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 个元素),所以我想我会创建一组嵌套数组列表,如下所示:

数组列表(类型)包含(数组列表(选项)包含(数组列表项)包含数组(名称,价格)。

这个结构再现了我将数据调用到 ListView 的顺序;它还与确认表中显示数据的方式相匹配;它与我将传递给服务器的 SQLite 的结构相匹配,以完成订单。

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

我真的很期待你的想法!

注意:要记住的一件事是我想将此结构重用于其他服务;例如,假设我的食堂有烧烤特色菜;我希望能够插入一个具有类似结构的 XML 文件(但不同的文本,因为它将以烧烤为主题)并最小限度地更改代码以便阅读它。

4

1 回答 1

0

我看到了四个嵌套的 ArrayList,这肯定会开始降低性能,并且会消耗额外的电池寿命来查找所有这些数组 indeces。考虑使用其他数据类型——BasicNameValuePair用于(名称、价格),LinkedList用于项目、选项和类型。这将运行得更快。我可能会创建一个包含 BasicNameValuePair (name,price) 的简单 Item 类,以更好地组织程序。

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

如果它们总是按字母顺序排列,请使用 TreeMap,因为它速度极快,并且会自动按字母顺序排列所有内容。

于 2012-07-26T16:17:06.360 回答