【发布时间】:2023-03-29 08:55:01
【问题描述】:
我目前正在开发一个 Android 应用程序,用户可以通过拖放按他们想要的任何顺序排列他们的列表。因此,我必须将排序顺序存储在列中的变量中。我正在考虑给每一行一个数字,如 100000、200000、300000 等,如果用户在 100000 和 200000 之间移动一个项目,那么它的排序数将成为其邻居的平均值,即 150000。这样,我只需要更新如果我执行正常的 i+1 排序值,则单行的排序号而不是表中的每一行。
什么是最有效的?大数字使用更多资源还是需要更长的时间进行排序?我只希望
任何帮助将不胜感激。
【问题讨论】:
-
我对此知之甚少,无法写出完整的答案,但我猜您可能想在您的数据库中模拟一个链表。让列表项保存上一个和下一个列表项的 id 值。 en.m.wikipedia.org/wiki/Doubly_linked_list
-
数据可能会在多个用户/设备之间同步,所以 id 而不是依赖其他可能存在于本地但实际上已经在服务器上删除的对象。
-
在 100 行中,您所做的任何事情都不会产生任何明显的影响。
标签: android mysql sqlite sorting