【问题标题】:Using hashtable or SQL Lite in my android application在我的 android 应用程序中使用 hashtable 或 SQLite
【发布时间】:2010-09-29 01:58:07
【问题描述】:

最初我在我的 android 应用程序中使用哈希表。我喜欢 hashtable 的关键是它能够存储复杂的项目,例如:坐标-->float[2]、velocity-->float[2]。

但是从许多示例来看,在 android 中使用 SQLlite 表似乎更有效,但它可能只将所有值存储在由 rowID 定义的一行中。

那么任何人都可以在这个问题上启发我吗?使用哈希表或 SQL lite 更可行? 如果我退出应用程序,hashtable 可以保留数据吗?

【问题讨论】:

    标签: android hashtable sqlite


    【解决方案1】:

    如果我退出应用程序,哈希表可以保留数据吗?

    不,当然不。 HashTable 实例将在您的应用程序运行时存在,但一旦您关闭应用程序,它将被删除。现在,把手放在心里,回答这些问题:

    • 您需要保存多少数据?
    • 您多久使用一次这些数据?
    • 数据应该保留多长时间?

    话虽如此,让我们谈谈persist data的更多方法:

    • Shared Preferences 如果您想要一种简单的方法来持久化简单的数据结构,这就是您要走的路。事实上,共享首选项允许您将数据保存在与 HashTable 非常相似的 key<->value 架构中。
    • SQlite 这个方法真的很有用,不过如果你不保存复杂的数据结构就没有必要了。如果你只是想保存一些值,使用 SQLite 就像用大炮杀死苍蝇一样。
    • 我认为有更多方法可以保存数据,但这些方法并不适用于您想要做的事情。

    因此,乍一看,我建议您查看共享首选项的示例,这似乎非常适合您的场景。

    【讨论】:

    • 让我想想共享偏好。我使用一些复杂的数据对象,因此我可能更喜欢 SQL Lite。我面临的唯一问题是学习如何将复杂的数据类型转换为 sql 中可理解的结构。
    • 如前所述。它是一个类似哈希表的结构
    • object->coor_x, coor_y, vlocity_x, velocity_y
    • 嗯...实际上并没有那么复杂。毕竟,如果您将所有内容保存在 HashTable 中,您可以将其保存在共享首选项模式中。或者在Sqlite上建个表,不过比较复杂,你的问题也很简单。
    【解决方案2】:

    SQLite 并不比哈希表更有效。你真的在比较两个完全不同的想法。 SQLite 用于持久存储,哈希表用于易失性存储。您的应用程序需要什么?

    【讨论】:

    • 我绝对需要持久存储。所以我可能会使用 SQL lite
    猜你喜欢
    • 2013-03-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 2011-01-03
    • 2016-05-31
    相关资源
    最近更新 更多