我在数据库中记录了排序顺序号。现在我想创建一个带UP和DOWN按钮的UI来重新排序它们。制作两个 functionsUp(记录)和 functionDown(记录)的最佳算法是什么,以便通过更改orderNum重新排列它们,并将它们保存到数据库中。
这是我想要实现的目标的例子(在foo = 24之前,在foo = 25之后):
在按下栏
之前id | name | orderNum
--------------------
1 | foo | 24
2 | bar | 25
3 | doe | 26
在
id | name | orderNum
--------------------
1 | foo | 25
2 | bar | 24
3 | doe | 26
答案 0 :(得分:1)
假设您正在使用Java Collections,您可以编写一个实现Comparable
的类并使用实用程序Collections.sort()
。有关订购收集的更多信息here。
答案 1 :(得分:0)
假设他不想再次从数据库再次请求数据,只是为了对他选择的数据进行排序,为什么不快速排序算法?
当然,如果我是对的。如果没有,请关注@ggrigery解决方案
答案 2 :(得分:0)
如果您想在UI上对它们进行排序,则应将ResultSet中的每条记录映射到bean。然后,您可以让您的bean实现Comparable接口,并使用它来对您的集合进行排序。
如果要对不同的字段进行排序,根据选择的字段,您还可以为每个字段编写比较器,并在运行时为选定的列注入比较器。