我目前正在开发一款 Android 应用程序,用户可以通过拖放的方式按他们想要的任何顺序对他们的列表进行排序。因此,我必须将排序顺序存储在列中的变量中。我正在考虑给每一行一个数字,如 100000、200000、300000 等,如果用户在 100000 和 200000 之间移动一个项目,那么它的排序编号将成为其邻居的平均值,即 150000。这样,我只需要更新如果我执行正常的 i+1 排序值,则单行的排序编号与表中的每一行相对。
什么是最有效的?大数字使用更多资源还是需要更长的时间来排序?我只期望 <100 行,所以如果大数字需要更长的时间进行排序,我可能最好使用较小的数字并更频繁地“重置”(当两个排序数字相互融合时)。我知道只有这么少的行,如果我只执行 i+1 排序方法并每次都更新我的数据库中的每一行,那并不重要。但我也在将我的 SQLite 数据与 BAAS 同步,其中大多数不允许批量保存。因此,对于我修改的每一行,我都必须发出 1 个 API 请求。这就是为什么我在重新订购商品时尽量减少修改的行数。
如有任何帮助,我们将不胜感激。
最佳答案
我最终只是使用我最初的方法,给每行一个数字,如 100000、200000、300000 等,如果用户在 100000 和 200000 之间移动一个项目,那么它的排序编号将成为其邻居的平均值,即 150000。由于我的行数相对较少~50,所以我选择了这种可能效率不高但最简单的方法。
关于android - 存储任意排序顺序的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997993/