当前位置:   article > 正文

JAVA高效实现列表上下移动、置顶的高效计算方法_java拖动排序 置顶 高性能

java拖动排序 置顶 高性能

       大家可能常常遇到像文章列表、商品列表,业务要求我们实现列表能自动上下移动和置顶。遇到这样我们大多数往往想的是很简单,给个排序字段sort类型为INT不就行了吗?

      它的实现方法,每当新增一条记录的时候,sort都会在前一条记录上+1。例如:我们用这5条记录来进行排序。记录1,sort:1;记录2,sort:2;记录3,sort:3;记录4,sort:4;记录5,sort:5。现在有这么一个需求,记录4往上移动。实现它很简单,只需要将它与记录3交换sort值。反之,记录4往下移动也是一样,只需要将它与记录5交换sort值。但是需要将记录4置顶,这里不再是将记录4与记录1进行位置的交换了,是需要将记录4的位置设置为1并且记录1、记录2、记录3的位置,都需要+1,造成循环调用数据库去更新这些数据的位置。案例4条数据不觉得性能有什么影响,但是数据量上万、十万、百万的时候呢?可想而知对用户体验、应用系统、数据库系统都非常大。

     实际上针对以上问题我们只需要变相的将sort设置为double类型,进而完美的解决。

     它的实现方法,每当新增一条记录的时候,sort都会在前一条记录上+1。例如:我们用这5条记录来进行排序。记录1,sort:1;记录2,sort:2;记录3,sort:3;记录4,sort:4;记录5,sort:5。现在有这么一个需求,记录4往上移动。实现它很简单,只需要将它与记录3交换sort值。反之,记录4往下移动也是一样,只需要将它与记录5交换sort值。但是需要将记录4置顶,这里只需要将记录1的sort值1减0.1等于0.9,即记录4的sort值。这样就无需再调整记录1、记录2、记录3的值。这样就很好的解决了大量数据更新的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/477098
推荐阅读
相关标签
  

闽ICP备14008679号